perm filename KLDCP.LST[KL,SYS] blob
sn#855715 filedate 1988-04-15 generic text, type C, neo UTF8
COMMENT ⊗ VALID 00414 PAGES
C REC PAGE DESCRIPTION
C00001 00001
C00067 00002 KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 1
C00069 00003 KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 2
C00072 00004 KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 3
C00076 00005 KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 4
C00078 00006 KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 5
C00080 00007 KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 6
C00081 00008 KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 7
C00086 00009 KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 8
C00088 00010 KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 9
C00092 00011 KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 10
C00096 00012 KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 11
C00100 00013 KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 12
C00101 00014 KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 13
C00105 00015 KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 14
C00106 00016 KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 15
C00109 00017 KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 16
C00111 00018 KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 17
C00112 00019 KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 18
C00114 00020 KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 19
C00116 00021 KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 20
C00119 00022 KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 21
C00120 00023 KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 22
C00122 00024 KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 23
C00125 00025 KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 24
C00129 00026 KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 25
C00133 00027 KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 26
C00136 00028 KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 27
C00140 00029 KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 28
C00143 00030 KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 29
C00146 00031 KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 30
C00148 00032 KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 31
C00150 00033 KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 32
C00153 00034 KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 33
C00155 00035 KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 34
C00159 00036 KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 35
C00162 00037 KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 36
C00165 00038 KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 37
C00168 00039 KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 38
C00171 00040 KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 39
C00173 00041 KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 40
C00176 00042 KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 41
C00179 00043 KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 42
C00181 00044 KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 43
C00184 00045 KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 44
C00186 00046 KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 45
C00190 00047 KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 46
C00191 00048 KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 47
C00194 00049 KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 48
C00196 00050 KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 49
C00199 00051 KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 50
C00202 00052 KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 51
C00205 00053 KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 52
C00209 00054 KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 53
C00213 00055 KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 54
C00214 00056 KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 55
C00216 00057 KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 56
C00217 00058 KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 57
C00218 00059 KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 58
C00219 00060 KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 59
C00223 00061 KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 60
C00225 00062 KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 61
C00226 00063 KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 62
C00230 00064 KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 63
C00232 00065 KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 64
C00235 00066 KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 65
C00238 00067 KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 66
C00242 00068 KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 67
C00244 00069 KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 68
C00247 00070 KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 69
C00250 00071 KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 70
C00253 00072 KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 71
C00256 00073 KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 72
C00259 00074 KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 73
C00261 00075 KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 74
C00264 00076 KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 75
C00267 00077 KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 76
C00271 00078 KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 77
C00274 00079 KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 78
C00277 00080 KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 79
C00279 00081 KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 80
C00281 00082 KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 81
C00285 00083 KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 82
C00289 00084 KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 83
C00290 00085 KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 84
C00293 00086 KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 85
C00296 00087 KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 86
C00299 00088 KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 87
C00302 00089 KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 88
C00305 00090 KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 89
C00307 00091 KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 90
C00309 00092 KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 91
C00312 00093 KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 92
C00315 00094 KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 93
C00318 00095 KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 94
C00321 00096 KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 95
C00324 00097 KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 96
C00327 00098 KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 97
C00329 00099 KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 98
C00331 00100 KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 99
C00334 00101 KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 100
C00337 00102 KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 101
C00341 00103 KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 102
C00342 00104 KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 103
C00346 00105 KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 104
C00348 00106 KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 105
C00351 00107 KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 106
C00353 00108 KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 107
C00355 00109 KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 108
C00358 00110 KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 109
C00361 00111 KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 110
C00363 00112 KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 111
C00364 00113 KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 112
C00367 00114 KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 113
C00369 00115 KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 114
C00371 00116 KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 115
C00374 00117 KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 116
C00375 00118 KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 117
C00378 00119 KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 118
C00381 00120 KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 119
C00382 00121 KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 120
C00386 00122 KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 121
C00389 00123 KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 122
C00392 00124 KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 123
C00395 00125 KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 124
C00398 00126 KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 125
C00399 00127 KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 126
C00402 00128 KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 127
C00405 00129 KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 128
C00407 00130 KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 129
C00411 00131 KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 130
C00412 00132 KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 131
C00416 00133 KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 132
C00418 00134 KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 133
C00422 00135 KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 134
C00425 00136 KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 135
C00427 00137 KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 136
C00431 00138 KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 137
C00435 00139 KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 138
C00437 00140 KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 139
C00440 00141 KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 140
C00441 00142 KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 141
C00445 00143 KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 142
C00449 00144 KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 143
C00453 00145 KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 144
C00457 00146 KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 145
C00461 00147 KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 146
C00462 00148 KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 147
C00466 00149 KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 148
C00467 00150 KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 149
C00470 00151 KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 150
C00473 00152 KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 151
C00475 00153 KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 152
C00478 00154 KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 153
C00480 00155 KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 154
C00482 00156 KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 155
C00486 00157 KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 156
C00489 00158 KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 157
C00490 00159 KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 158
C00492 00160 KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 159
C00494 00161 KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 160
C00495 00162 KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 161
C00497 00163 KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 162
C00499 00164 KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 163
C00501 00165 KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 164
C00503 00166 KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 165
C00505 00167 KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 166
C00509 00168 KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 167
C00513 00169 KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 168
C00517 00170 KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 169
C00520 00171 KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 170
C00522 00172 KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 171
C00523 00173 KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 172
C00524 00174 KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 173
C00528 00175 KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 174
C00529 00176 KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 175
C00533 00177 KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 176
C00537 00178 KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 177
C00540 00179 KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 178
C00542 00180 KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 179
C00544 00181 KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 180
C00545 00182 KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 181
C00548 00183 KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 182
C00551 00184 KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 183
C00554 00185 KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 184
C00555 00186 KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 185
C00558 00187 KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 186
C00561 00188 KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 187
C00565 00189 KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 188
C00568 00190 KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 189
C00571 00191 KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 190
C00573 00192 KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 191
C00577 00193 KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 192
C00578 00194 KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 193
C00581 00195 KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 194
C00582 00196 KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 195
C00585 00197 KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 196
C00588 00198 KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 197
C00591 00199 KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 198
C00595 00200 KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 199
C00598 00201 KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 200
C00599 00202 KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 201
C00601 00203 KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 202
C00604 00204 KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 203
C00607 00205 KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 204
C00610 00206 KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 205
C00613 00207 KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 206
C00614 00208 KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 207
C00616 00209 KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 208
C00619 00210 KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 209
C00621 00211 KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 210
C00624 00212 KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 211
C00625 00213 KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 212
C00628 00214 KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 213
C00631 00215 KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 214
C00634 00216 KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 215
C00638 00217 KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 216
C00639 00218 KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 217
C00642 00219 KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 218
C00645 00220 KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 219
C00647 00221 KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 220
C00649 00222 KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 221
C00652 00223 KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 222
C00654 00224 KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 223
C00656 00225 KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 224
C00660 00226 KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 225
C00661 00227 KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 226
C00664 00228 KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 227
C00665 00229 KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 228
C00668 00230 KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 229
C00669 00231 KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 230
C00672 00232 KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 231
C00674 00233 KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 232
C00678 00234 KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 233
C00680 00235 KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 234
C00682 00236 KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 235
C00686 00237 KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 236
C00690 00238 KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 237
C00694 00239 KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 238
C00697 00240 KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 239
C00699 00241 KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 240
C00702 00242 KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 241
C00705 00243 KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 242
C00706 00244 KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 243
C00709 00245 KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 244
C00712 00246 KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 245
C00715 00247 KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 246
C00718 00248 KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 247
C00722 00249 KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 248
C00724 00250 KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 249
C00725 00251 KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 250
C00727 00252 KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 251
C00729 00253 KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 252
C00732 00254 KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 253
C00736 00255 KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 254
C00737 00256 KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 255
C00739 00257 KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 256
C00741 00258 KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 257
C00744 00259 KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 258
C00747 00260 KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 259
C00750 00261 KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 260
C00752 00262 KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 261
C00755 00263 KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 262
C00756 00264 KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 263
C00759 00265 KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 264
C00762 00266 KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 265
C00763 00267 KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 266
C00766 00268 KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 267
C00768 00269 KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 268
C00771 00270 KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 269
C00772 00271 KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 270
C00775 00272 KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 271
C00779 00273 KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 272
C00783 00274 KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 273
C00785 00275 KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 274
C00789 00276 KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 275
C00791 00277 KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 276
C00794 00278 KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 277
C00798 00279 KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 278
C00801 00280 KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 279
C00804 00281 KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 280
C00806 00282 KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 281
C00809 00283 KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 282
C00810 00284 KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 283
C00813 00285 KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 284
C00816 00286 KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 285
C00818 00287 KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 286
C00822 00288 KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 287
C00826 00289 KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 288
C00829 00290 KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 289
C00831 00291 KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 290
C00834 00292 KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 291
C00837 00293 KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 292
C00839 00294 KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 293
C00842 00295 KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 294
C00843 00296 KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 295
C00847 00297 KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 296
C00848 00298 KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 297
C00851 00299 KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 298
C00854 00300 KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 299
C00857 00301 KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 300
C00861 00302 KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 301
C00862 00303 KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 302
C00865 00304 KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 303
C00869 00305 KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 304
C00873 00306 KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 305
C00874 00307 KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 306
C00877 00308 KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 307
C00879 00309 KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 308
C00880 00310 KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 309
C00881 00311 KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 310
C00885 00312 KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 311
C00886 00313 KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 312
C00889 00314 KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 313
C00890 00315 KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 314
C00891 00316 KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 315
C00893 00317 KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 316
C00896 00318 KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 317
C00897 00319 KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 318
C00901 00320 KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 319
C00905 00321 KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 320
C00910 00322 KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 321
C00914 00323 KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 322
C00917 00324 KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 323
C00921 00325 KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 324
C00925 00326 KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 325
C00929 00327 KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 326
C00931 00328 KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 327
C00936 00329 KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 328
C00940 00330 KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 329
C00944 00331 KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 330
C00945 00332 KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 331
C00948 00333 KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 332
C00952 00334 KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 333
C00954 00335 KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 334
C00959 00336 KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 335
C00961 00337 KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 336
C00966 00338 KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 337
C00968 00339 KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 338
C00971 00340 KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 339
C00972 00341 KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 340
C00973 00342 KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 341
C00975 00343 KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 342
C00978 00344 KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 343
C00979 00345 KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 344
C00982 00346 KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 345
C00984 00347 KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 346
C00987 00348 KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 347
C00988 00349 KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 348
C00990 00350 KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 349
C00991 00351 KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 350
C00994 00352 KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 351
C00996 00353 KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 352
C00998 00354 KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 353
C01000 00355 KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 354
C01002 00356 KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 355
C01004 00357 KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 356
C01006 00358 KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 357
C01007 00359 KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 358
C01010 00360 KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 359
C01013 00361 KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 360
C01014 00362 KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 361
C01018 00363 KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 362
C01019 00364 KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 363
C01023 00365 KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 364
C01026 00366 KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 365
C01030 00367 KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 366
C01031 00368 KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 367
C01033 00369 KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 368
C01038 00370 KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 369
C01041 00371 KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 370
C01044 00372 KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 371
C01048 00373 KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 372
C01049 00374 KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 373
C01052 00375 KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 374
C01056 00376 KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 375
C01057 00377 KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 376
C01059 00378 KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 377
C01061 00379 KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 378
C01063 00380 KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 379
C01065 00381 KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 380
C01067 00382 KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 381
C01071 00383 KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 382
C01074 00384 KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 383
C01077 00385 KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 384
C01080 00386 KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 385
C01084 00387 KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 386
C01085 00388 KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 387
C01089 00389 KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 388
C01092 00390 KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 389
C01095 00391 KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 390
C01096 00392 KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 391
C01097 00393 KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 392
C01100 00394 KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 393
C01102 00395 KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 394
C01104 00396 KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 395
C01107 00397 KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 396
C01109 00398 KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 397
C01111 00399 KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 398
C01113 00400 KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 399
C01115 00401 KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 400
C01117 00402 KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 401
C01120 00403 KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 402
C01121 00404 KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 403
C01122 00405 KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 404
C01127 00406 KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 405
C01132 00407 KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 406
C01137 00408 KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 407
C01142 00409 KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 408
C01147 00410 KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 409
C01152 00411 KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 410
C01157 00412 KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 411
C01162 00413 KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 412
C01166 00414 KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 413
C01167 ENDMK
C⊗;
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 1
KLDCP PAL[KL,SYS] Page 1
COMMENT ⊗ VALID 00005 PAGES
C REC PAGE DESCRIPTION
C00001 00001
C00002 00002 DECSYSTEM10 KL10 PDP-11 DIAGNOSTIC CONSOLE PROGRAM
C00004 00003 ASSEMBLY PARAMETERS
C00008 00004 KLDCPU UTILITY PROGRAM PARAMETERS
C00009 00005 FUQ:: THIS IS HERE TO AVOID GETTING A "LOCAL TAG BEFORE
C00011 ENDMK
C⊗;
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 2
KLDCP PAL[KL,SYS] Page 2
;DECSYSTEM10 KL10 PDP-11 DIAGNOSTIC CONSOLE PROGRAM
000010 DECVER==010
000000 MCNVER==0
000007 SAILVR==7 ;STANFORD VERSION NUMBER. (DEFINING SAILVR MAKES STANFORD ASSEMBLY)
.TITLE KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10
.LIST MC,MD
;.DSABL GBL
;.DSABL REG
.ABS
;.ENABL AMA
;JOHN R. KIRCHOFF
;DIGITAL EQUIPMENT CORPORATION
;MARLBORO, MASS. 01752
;[ NOTE: If you change SBST11, you should reassemble KLDCPU also! ]
;Stanford Revision History.
;
;1 4/17/76 Convert to PALX
;2 4/19/76 Install EPTREL switch
; Fix LE,LT, etc. to use correct extension by default.
;3 4/26/76 Add clock sub-functions 4,5
;4 4/29/76 Make clock interrupt. Fix SET MONMOD.
;5 5/11/76 Change clock subfunctions 4,5 for pdp-10 doubleword time
;6 5/24/76 Add MIT code for MZ, PCF, DDT command, ST mods,
; Also JBR's code for keeping DSKDMP BOOT in 11-core
;7 4/29/80 JEP (Jim Powell) & REG to support ethernet and QM protocol
; Through 7/80
;8 1/12/81 Bugtrap and fixes to ethernet stuff. (TVR)
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 3
KLDCP PAL[KL,SYS] Page 3
;ASSEMBLY PARAMETERS
000001 KLDCP= 1 ;ASSEMBLE KLDCP
000001 DTEASB= 1 ;ASSEMBLE DTE20
000001 DTEDEF= 1 ;DEFINE DTE OFFSET ADDRESSES
000001 DVSASB= 1 ;ASSEMBLE DEVICE SERVICE
000001 KWASB= 1 ;ASSEMBLE KW CLOCK
000001 DLASB= 1 ;ASSEMBLE DL11
;DHASB= 1 ;ASSEMBLE DH11
;TAASB= 1 ;ASSEMBLE TA CASSETTE
;RXASB= 1 ;ASSEMBLE RX11/RX01 FLOPPY
000001 TCASB= 1 ;ASSEMBLE TC DECTAPE
;RPASB= 1 ;ASSEMBLE RP04 DISK PACK
;LPASB= 1 ;ASSEMBLE LP20 LINE PRINTER
000001 EPTREL==1 ;ASSEMBLE EXAMINES/DEPOSITS FOR COMMUNICATIONS RELATIVE TO EPT
;BPTASB==1 ;ASSEMBLE KLDCP TYPE BREAKPOINT STUFF
000001 BOOASB==1 ;ASSEMBLE DSKDMP BOOT STUFF
000001 %%DDT==1 ;ASSEMBLE TO ALLOW DDT TO COEXIST WITH KLDCP
000001 TELASB==1 ;ASSEMBLE DIALUP CONNECTION CODE, TURN OFF KLINIK FEATURE
000001 CLKASB==1 ;ASSEMBLE TCU-100 BATTERY CLOCK CODE
;UTLASB==1 ;ASSEMBLE LINKAGES TO KLDCPU
;MONASB==1 ;ASSEMBLE MONITOR TYPE COMMANDS (INCLUDES SOME ACT10 STUFF)
000001 %%QMP==1 ;Assemble queued message protocol,
;front-end reloads from WAITS
;ethernet support
;;FSCASB==1 ;Assemble statistics for QMP free storage.
000001 PCKASB==1 ;Assemble checksumming of incoming PUPs (QMP11)
000010 $NB= 8. ;USE 8 BREAKPOINTS
;SUBROUTINE CODE BEGINS AT 16K (WORDS)
100000 PRGSRT =16.*1024.*2.
160000 COREND =28.*1024.*2.
.IF DF %%DDT
077766 %DDTS==PRGSRT-12
003000 TOUTBF=3000 ;OVERLAY BUFFER DOWN WHERE DIAGS GO
.IFF
TOUTBF= 70000 ;OVERLAY BUFFER
.ENDC
;PDP-10 ABSOLUTE CORE LOCATIONS:
000440 $STD= 440 ;PDP-10 DIAGNOSTIC START ADDRESS
000441 $DDT= 441 ;PDP-10 DDT START ADDRESS
000442 $STL= 442 ;PDP-10 LOADER START ADDRESS
000443 $STM= 443 ;PDP-10 MONITOR START ADDRESS
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 4
KLDCP PAL[KL,SYS] Page 3.1
;PDP-10 KL10 EXEC PROCESS TABLE PARAMETERS.
;IF EPTREL≠0 THEN ALL OF THE FOLLOWING ARE RELATIVE TO EBR IN THE KL10
000444 $DTFLG= 444 ;DTE20 OPERATION COMPLETE FLAG
000445 $DTCLK= 445 ;DTE20 CLOCK INTERRUPT FLAG
;;$DTCI= 446 ;DTE20 CLOCK INTERRUPT INSTRUCTION (10 SOFTWARE ONLY)
.LIF DF CLKASB
000446 $DTTIME=446 ;DTE20 TIME AND DATE FROM BATTERY BACKUP CLOCK
000447 $DTT11= 447 ;DTE20 10 TO 11 ARGUMENT
000450 $DTF11= 450 ;DTE20 11 TO 10 ARGUMENT
000451 $DTCMD= 451 ;DTE20 TO 11 COMMAND WORD
000452 $DTSEQ= 452 ;DTE20 OPERATION SEQUENCE NUMBER (10 SOFTWARE ONLY. NOT USED)
000453 $DTOPR= 453 ;DTE20 OPERATION IN PROGRESS FLAG (10 SOFTWARE ONLY. NOT USED)
000454 $DTCHR= 454 ;DTE20 LAST KEY TYPED ON CTY
000455 $DTMTD= 455 ;DTE20 MONITOR TTY OUTPUT COMPLETE FLAG
000456 $DTMTI= 456 ;DTE20 MONITOR TTY INPUT FLAG
000457 $DTSWR= 457 ;DTE20 PDP-10 SWITCH REGISTER
000460 $DTQMP= 460 ;DTE20 11 TELLS 10 THE SIZE OF A TO10 TRANSFER
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 5
KLDCP PAL[KL,SYS] Page 4
;KLDCPU UTILITY PROGRAM PARAMETERS
;UTILITY IDENTIFICATION
003004 PID= 3004 ;PROGRAM NAME
003010 PDVER= 3010 ;DEC VERSION
003012 PMVER= 3012 ;MCN VERSION
;UTILITY SUB-PROGRAM DISPATCH ADDRESSES
003020 PTABLE= 3020 ;START OF TABLE
003020 RXCOPY= 3020 ;RX11/RX01 FLOPPY COPY PROGRAM
003022 DTCOPY= 3022 ;TC11 DECTAPE COPY PROGRAM
003024 WFILE= 3024 ;WRITE FILE FROM DTA/RX TO RP04 PROGRAM
003026 TAPT= 3026 ;TRANSFER FILE FROM APT10 TO RP04 PROGRAM
003030 DSKDIR= 3030 ;RP04 DISK DIRECTORY
003032 REMOTE= 3032 ;REMOTE TELETYPE COMMUNICATIONS
001000 XMEMSZ==512. ;#OF K OF PDP-10 MEMORY TO ZERO IN MZ 0,-1 COMMAND
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 6
KLDCP PAL[KL,SYS] Page 5
FUQ:: ;THIS IS HERE TO AVOID GETTING A "LOCAL TAG BEFORE
;FIRST LABEL" ERROR MESSAGE FROM PALX.
;(THERE ARE MACRO DEFINITIONS WITH LOCAL TAGS IN THEM)
;INSERT THE REST OF KLDCP
;Parameters file
.INSRT PRM11.PAL
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 7
PRM11 PAL[KL,SYS] Page 1
COMMENT ⊗ VALID 00044 PAGES
C REC PAGE DESCRIPTION
C00001 00001
C00005 00002 .SBTTL *PRM11* DECSYSTEM10 PDP-11 PROGRAM/SUBROUTINE PARAMETERS, 4-AUG-75
C00007 00003 .SBTTL EMT DEFINITIONS
C00010 00004 TELETYPE OUTPUT DEFINITIONS
C00013 00005 MISCELLANEOUS FUNCTIONS
C00016 00006 COMMUNICATION ROUTINES
C00019 00007 DFXCT= EMT!114 DIAGNOSTIC FUNCTION EXECUTE
C00021 00008 .SBTTL MACRO DEFINITIONS
C00023 00009 BASIC MACROS
C00024 00010 .MACRO SL REG,NUM
C00025 00011 STANDARD PROGRAM ASSIGNMENTS
C00027 00012 BIT ASSIGNMENTS
C00028 00013 CHARACTERS USED
C00030 00014 .SBTTL DTE20 DEVICE REGISTER AND BIT DEFINITIONS, 4-JUNE-75
C00033 00015 BIT ASSIGNMENTS FOR 10/11 INTERFACE REGISTERS
C00036 00016 BIT ASSIGNMENTS FOR DIAG2 (WRITE)
C00038 00017 BIT ASSIGNMENTS FOR STATUS (WRITE)
C00041 00018 CLOCK CONTROL FUNCTIONS
C00043 00019 CRAM FUNCTIONS
C00045 00020 DATA PATH CONTROL FUNCTIONS
C00046 00021 .SBTTL KL10 EBOX MACRO DEFINITIONS, 4-JUNE-75
C00048 00022 MACRO TO GENERATE A RIGHT JUSTIFIED 3-BYTE VALUE
C00050 00023 THIS IS A MACRO TO WAIT FOR A DONE FLAG
C00052 00024 .SBTTL *BBD* DTE20 DEVICE REGISTER AND BIT DEFINITIONS, 2-JAN-75
C00055 00025 THE FOLLOWING MACRO (DTEVEC) DYNAMICLY COMPUTES THE INTERRUPT
C00058 00026 BIT ASSIGNMENTS FOR DIAG1 (WRITE)
C00060 00027 BIT ASSIGNMENTS FOR STATUS (WRITE)
C00062 00028 FUNCTION SELECT CODES
C00064 00029 READ0 =110 PI (READ STATUS 0)
C00065 00030 .SBTTL *BBD* KL10 EBOX MACRO DEFINITIONS, 4-MAR-75
C00067 00031 MACRO TO GENERATE A RIGHT JUSTIFIED 3-BYTE VALUE
C00069 00032 THIS IS A MACRO TO WAIT FOR A DONE FLAG
C00071 00033 .SBTTL DEVICE SYMBOL DEFINITIONS, 4-JUNE-75
C00074 00034 .SBTTL KW11 DEVICE REGISTERS AND BIT DEFINITIONS, 4-JUNE-75
C00075 00035 .SBTTL DL11 DEVICE REGISTERS AND BIT DEFINITIONS, 4-JUNE-75
C00078 00036 .SBTTL DH11 DEVICE REGISTERS AND BIT DEFINITIONS, 4-JUNE-75
C00081 00037 BIT DEFINITIONS FOR "DHLPR"- LINE PARAMETER REGISTER.
C00083 00038 .SBTTL TA11 (CASSETTE) DEVICE REGISTER AND BIT DEFINITIONS, 4-JUNE-75
C00085 00039 .SBTTL RX11/RX01 (FLOPPY) REGISTERS AND BIT DEFINITIONS, 22-JULY-75
C00087 00040 .SBTTL TC11 (DECTAPE) DEVICE REGISTERS AND BIT DEFINITIONS, 4-JUNE-75
C00089 00041 .SBTTL RH11/RP04 REGISTER AND BIT DEFINITIONS, 4-JUNE-75
C00092 00042 .SBTTL LP20 REGISTER AND BIT DEFINITIONS, 27-JUNE-75
C00095 00043 .SBTTL EN11 - PDP11/ETHERNET INTERFACE MODULE DEVICE REGISTERS ETC.
C00096 00044 DSKDMP BOOTSTRAP PARAMETERS
C00097 ENDMK
C⊗;
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 8
PRM11 PAL[KL,SYS] Page 2 *PRM11* DECSYSTEM10 PDP-11 PROGRAM/SUBROUTINE PARAMETERS, 4-AUG-75
.SBTTL *PRM11* DECSYSTEM10 PDP-11 PROGRAM/SUBROUTINE PARAMETERS, 4-AUG-75
;PROGRAM CONTROL SWITCHES
100000 ABORT= 100000 ;ABORT AT PROGRAM PASS COMPLETION
040000 RSTART= 40000 ;RESTART TEST
020000 TOTALS= 20000 ;PRINT TEST TOTALS
010000 NOPNT= 10000 ;INHIBIT ALL PRINT OUT (EXCEPT FORCED)
004000 PNTLPT= 4000 ;PRINT ON LINE-PRINTER
002000 DING= 2000 ;RING TTY BELL ON ERROR
001000 LOOPER= 1000 ;LOOP ON ERROR
000400 ERSTOP= 400 ;HALT ON ERROR
000200 PALERS= 200 ;PRINT ALL ERRORS
000100 RELIAB= 100 ;RELIABILITY RUN MODE
000040 TXTINH= 40 ;TEXT INHIBIT
000020 INHPAG= 20 ;INHIBIT PAGING (PDP-10)
000010 MODDVC= 10 ;MODIFY DEVICE CODE (PDP-10)
000004 INHCSH= 4 ;INHIBIT CACHE (PDP-10)
000002 OPRSEL= 2 ;OPERATOR SELECTION
000001 CHAIN= 1 ;CHAIN CONTROL SWITCH
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 9
PRM11 PAL[KL,SYS] Page 3 EMT DEFINITIONS
.SBTTL EMT DEFINITIONS
;OPERATOR DEFINITION - SUBROUTINE CALLS
104000 FATAL= EMT!0 ;FATAL PROGRAMMING ERROR.
104001 ERRHLT= EMT!1 ;PROGRAM HALT, ONLY IF "ERSTOP" SWITCH SET
104002 PRGHLT= EMT!2 ;PROGRAM HALT, DON'T CHECK SWITCH
104003 RUNLP= EMT!3 ;CONSOLE IDLE RUN LOOP
104226 DFLEGAL=EMT!226 ;DIAGNOSTIC FUNCTION LEGALITY CHECK
;TELETYPE INPUT DEFINITIONS
; *** CALL SEQUENCE ***
; TT----
; RETURN, C BIT SET FOR NO/ERROR RESPONSE
104004 TTILIN= EMT!4 ;READ TTY LINE INPUT INTO BUFFER
104224 TTILNW= EMT!224 ;READ TTY LINE INPUT, WAIT FOREVER
104225 TTICCL= EMT!225 ;PROCESS TTY INPUT FROM INDIRECT CCL BUFFER
104005 TTICHR= EMT!5 ;INPUT A CHARACTER FROM BUFFER
104144 TTBACK= EMT!144 ;BACKUP INPUT POINTER
104006 TTLOOK= EMT!6 ;LOOK FOR A TTY INPUT
104007 TTIOCT= EMT!7 ;INPUT AN OCTAL NUMBER FROM BUFFER
104010 TTCOCT= EMT!10 ;INPUT & CHECK OCTAL, RTN IF OK
104200 TTOCTE= EMT!200 ;INPUT EVEN OCTAL NUMBER
104011 TTIDEC= EMT!11 ;INPUT A DECIMAL NUMBER FROM BUFFER
104012 TTIYES= EMT!12 ;ASK YES-NO, N BIT ON NO, C BIT SET ON ERROR
104013 TTALTM= EMT!13 ;ALT-MODE CHECK, C BIT SET IF NON-ALT-MODE
104014 TTI36= EMT!14 ;READ 36 DIGIT NUMBER FROM BUFFER
104015 TTIBRK= EMT!15 ;GET NUMBER INPUT BREAK CHARACTER
104016 TTISDL= EMT!16 ;SPACE DELETE, C BIT SET ON NON-NUMBER
104017 TTISDO= EMT!17 ;SPACE DELETE & OCTAL INPUT, RTN IF OK
104020 TTIS36= EMT!20 ;SPACE DELETE & 36BIT INPUT, RTN IF OK
104021 TTICRA= EMT!21 ;INPUT C-RAM ADDRESS
104022 TTITRM= EMT!22 ;CHECK INPUT TERMINATOR, RTN IF OK
104023 TTBTRM= EMT!23 ;BACKUP, THEN "
104201 TTERM= EMT!201 ;NUMBER TERMINATION CHECK, C BIT SET IF ERROR
104217 TTPINI= EMT!217 ;INITIALIZE INPUT & OUTPUT BUFFER POINTERS
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 10
PRM11 PAL[KL,SYS] Page 4 EMT DEFINITIONS
;TELETYPE OUTPUT DEFINITIONS
; *** CALL SEQUENCE ***
; MOV ARG,R0 ;IF CALL REQUIRES AN ARGUMENT
; P-----
104024 PNTAL= EMT!24 ;PRINT ASCII LINE, ADDRESS IN R0
104025 $PMSG= EMT!25 ;PRINT MESSAGE, TRAILING PARAMETER
104026 $PMSGR= EMT!26 ;PRINT MESSAGE, CONDITIONAL ON "RPTFLG"
104027 PNTCHR= EMT!27 ;PRINT ASCII CHARACTER IN R0
104214 PNTCI= EMT!214 ;PRINT CHAR IMMEDIATE, TRAILING CHARS
104030 PNTNBR= EMT!30 ;PRINT NUMBER
104031 PCRLF= EMT!31 ;PRINT CR-LF
104032 PSPACE= EMT!32 ;PRINT A SPACE
104033 PSLASH= EMT!33 ;PRINT A SLASH
104034 PCOMMA= EMT!34 ;PRINT A COMMA
104227 PTAB= EMT!227 ;PRINT A TAB
104035 PNTOCT= EMT!35 ;PRINT OCTAL NUMBER IN R0
104036 PNTOCS= EMT!36 ;PRINT OCTAL IN R0, SUPPRESS LEADING ZEROS
104037 PNTDEC= EMT!37 ;PRINT DECIMAL NUMBER IN R0
104040 PNT18= EMT!40 ;PRINT LOWER 18 OF 36 BIT NUMBER
104041 PNT23= EMT!41 ;PRINT LOWER 23 BITS OF 36 BIT NUMBER
104041 PNT22= EMT!41 ; " OLD PNT23 "
104042 PNT36= EMT!42 ;PRINT 36 BIT NUMBER, ADDRESS IN R0
104134 PNT36B= EMT!134 ;PRINT 36 BIT NUMBER IN BINARY
104137 PNTADR= EMT!137 ;PRINT PDP-10 ADDRESS
104043 PFORCE= EMT!43 ;SET FORCED PRINTOUT FLAG
104044 PNORML= EMT!44 ;CLEAR FORCED PRINTOUT FLAG
104045 PBELL= EMT!45 ;DING THE TTY BELL
104046 PNTODC= EMT!46 ;PRINT SPECIFIED OCTAL DIGITS
104047 PNTODT= EMT!47 ;PRINT SPECIFIED DIGITS, TRAILING PARAMETER
104151 PRINTT= EMT!151 ;PRINT, TTY OUTPUT
104152 PTTY= EMT!152 ;PRINT, TTY DRIVER
104153 PLPT= EMT!153 ;PRINT, LPT DRIVER
104154 PLDBUF= EMT!154 ;PRINT, LOAD BUFFER
104177 PNTBAK= EMT!177 ;PRINT, BACKUP OUTPUT INSERTION POINTER
104215 PNTRST= EMT!215 ;PRINT, OUTPUT POINTERS RESET
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 11
PRM11 PAL[KL,SYS] Page 5 EMT DEFINITIONS
;MISCELLANEOUS FUNCTIONS
104050 REGSAV= EMT!50 ;SAVE R0 THRU R5
104051 REGRST= EMT!51 ;RESTORE R0 THRU R5
104053 SHIFTR= EMT!53 ;SHIFT R0 RIGHT, TRAILING PARAMETER
104054 SHIFTL= EMT!54 ;SHIFT R0 LEFT, TRAILING PARAMETER
104146 PROL36= EMT!146 ;ROTATE LEFT 36 BITS
104055 SETFLG= EMT!55 ;SET -1 TO FLAG, TRAILING PARAMETER
104072 MULTPY= EMT!72 ;MULTIPLY
104056 TDELAY= EMT!56 ;SMALL DELAY
104057 SWITCH= EMT!57 ;READ THE SWITCH REGISTER, RETURNED IN R0
104060 SWTSAM= EMT!60 ;RETURN PRESENT STORED SWITCHES IN R0
104061 EOP= EMT!61 ;END OF PASS ROUTINE, RETURNS IF NOT COMPLETED
104062 ERREOP= EMT!62 ;ERROR END OF PASS
104063 EOPSET= EMT!63 ;SET END OF PASS PRINTOUT INTERVAL
;DEVICE ROUTINES
104206 NAMEXT= EMT!206 ;FILE NAME.EXT PROCESS
104207 DTAFILE=EMT!207 ;DECTAPE FILE SELECTION
104210 RPFILE= EMT!210 ;RP04 FILE SELECTION
104155 R50UPK= EMT!155 ;RAD50 TO ASCII UNPACK
104165 ASCR50= EMT!165 ;ASCII TO RAD50 CONVERSION
104156 DTINIT= EMT!156 ;DECTAPE INITIALIZATION
104157 RPINIT= EMT!157 ;RP04 INITIALIZATION
104166 RPLOAD= EMT!166 ;RP04 LOAD PACK
104160 DVDATA= EMT!160 ;DEVICE DATA BLOCK READ
104211 DTRDFL= EMT!211 ;DECTAPE READ FILE
104212 DTWTFL= EMT!212 ;DECTAPE WRITE FILE
104213 DTBASE= EMT!213 ;RETURN DECTAPE PARAMETER BASE ADDRESS
104161 DTREAD= EMT!161 ;DECTAPE READ
104205 DTWRT= EMT!205 ;DECTAPE WRITE
104167 RPFIND= EMT!167 ;RP04 FIND FILE
104170 RPLKUP= EMT!170 ;RP04 FILE DIRECTORY LOOKUP
104171 RPRDFL= EMT!171 ;RP04 READ FILE
104172 RPWRFL= EMT!172 ;RP04 WRITE FILE
104162 RPREAD= EMT!162 ;RP04 READ
104173 RPWRIT= EMT!173 ;RP04 WRITE
104174 RPADDR= EMT!174 ;RP04 ADDRESS CALCULATION
104175 RPBASE= EMT!175 ;RETURN RP04 PARAMETER BLOCK BASE ADDRESS
104237 RPERROR=EMT!237 ;RP04 ERROR REPORTER
104163 DVFRAM= EMT!163 ;DEVICE DATA FRAME READ
104164 DVWRD= EMT!164 ;DEVICE WORD READ
104230 RXFILE= EMT!230 ;RX11/RX01 FLOPPY FILE SELECTION
104231 RXINIT= EMT!231 ; FLOPPY INITIALIZATION
104232 RXRDFL= EMT!232 ; FLOPPY READ FILE
104233 RXWTFL= EMT!233 ; FLOPPY WRITE FILE
104234 RXBASE= EMT!234 ; FLOPPY PARAMETER BLOCK BASE ADDRESS
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 12
PRM11 PAL[KL,SYS] Page 5.1 EMT DEFINITIONS
104235 RXREAD= EMT!235 ; FLOPPY READ
104236 RXWRT= EMT!236 ; FLOPPY WRITE
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 13
PRM11 PAL[KL,SYS] Page 6 EMT DEFINITIONS
;COMMUNICATION ROUTINES
.IF DF MONASB
COMCMD= EMT!220 ;COMMUNICATIONS COMMAND
COMRTRY=EMT!221 ;COMMUNICATIONS COMMAND RETRY
COMENQ= EMT!222 ;COMMUNICATIONS ENQUIRY
COMEOT= EMT!223 ;COMMUNICATIONS END OF TRANSMISSION
COMLIN= EMT!64 ;COMMUNICATIONS LINE INPUT
COMSND= EMT!65 ;COMMUNICATIONS LINE OUTPUT
COMACK= EMT!66 ;COMMUNICATIONS ACKNOWLEDGE
COMNAK= EMT!67 ;COMMUNICATIONS NEGATIVE ACKNOWLEDGE
COMCLR= EMT!70 ;COMMUNICATIONS CLEAR
COMCTL= EMT!71 ;COMMUNICATIONS CONTROL SEQUENCE
.ENDC
;KL10 ROUTINES
104073 WCRAM= EMT!73 ;WRITE IN TO C-RAM
104074 RCRAM= EMT!74 ;READ THE C-RAM
104075 WWADR= EMT!75 ;WRITE C-RAM ADDRESS
104203 MICNUL= EMT!203 ;C-RAM FILL WITH 0'S
104204 MICFIL= EMT!204 ;C-RAM FILL WITH 1'S
104076 MRESET= EMT!76 ;MASTER RESET
104145 TENSW= EMT!145 ;PDP-10 SWITCHES
104077 TENSP= EMT!77 ;TURN OFF TEN RUNNING
104176 TENCHR= EMT!176 ;PDP-10 LAST TYPED CHARACTER
104100 SM= EMT!100 ;START MACHINE
104101 EXCT= EMT!101 ;EXECUTE PDP10 INSTR, REQUIRES SM
104102 LODAR= EMT!102 ;SPECIAL AR LOAD FOR EXCT AND MBOX TEST
104147 SETMPH= EMT!147 ;SET M-BOX PHASE
104135 ECLOK= EMT!135 ;E BOX CLOCK
104136 ESYNC= EMT!136 ;E BOX SYNC
104103 EXAM= EMT!103 ;EXAMINE 10 MEMORY
104104 EXAMT= EMT!104 ;EXAMINE 10 MEMORY, TRAILING PARAMETERS
104105 DPOS= EMT!105 ;DEPOSIT INTO 10 MEMORY
104106 DPOST= EMT!106 ;DEPOSIT INTO 10 MEMORY, TRAILING PARAMETERS
104107 DPOSVR= EMT!107 ;DEPOSIT AND VERIFY 10 MEMORY
104110 DPOSVT= EMT!110 ;DEPOSIT AND VERIFY 10 MEMORY, TRAILING PARAMETERS
104111 D10MON= EMT!111 ;DEPOSIT -1 INTO 10 FLAG WORD
104112 D10ZRO= EMT!112 ;PDP-10 MEMORY ZERO
104052 CMPR36= EMT!52 ;COMPARE 5 BYTE 36-BIT WORD
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 14
PRM11 PAL[KL,SYS] Page 6.1 EMT DEFINITIONS
104113 DTEBAS= EMT!113 ;RETURN DTE20 BASE ADDRESS
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 15
PRM11 PAL[KL,SYS] Page 7 EMT DEFINITIONS
104114 DFXCT= EMT!114 ;DIAGNOSTIC FUNCTION EXECUTE
104115 DFXCTT= EMT!115 ;DF EXECUTE, TRAILING PARAMETER
104116 DFRD= EMT!116 ;DIAGNOSTIC FUNCTION READ
104140 DFRDT= EMT!140 ;DF READ, TRAILING PARAMETER
104117 DFRDMV= EMT!117 ;DIAGNOSTIC FUNCTION READ & MOVE
104120 DFWRT= EMT!120 ;DIAGNOSTIC FUNCTION WRITE
104141 DFWRTT= EMT!141 ;DF WRITE, TRAILING PARAMETERS
104121 DFWIR= EMT!121 ;DIAGNOSTIC FUNCTION WRITE IR
104122 DFSCLK= EMT!122 ;DIAGNOSTIC FUNCTION, SINGLE STEP CLOCK
104123 DFPC= EMT!123 ;DIAGNOSTIC FUNCTION READ PC
104124 DFVMA= EMT!124 ;DIAGNOSTIC FUNCTION READ VMA
104125 DFADB= EMT!125 ;DIAGNOSTIC FUNCTION READ ADDRESS BREAK
104150 DFVMAH= EMT!150 ;DIAGNOSTIC FUNCTION READ VMA HELD
104126 RDRAM= EMT!126 ;READ D-RAM
104127 WDRAM= EMT!127 ;WRITE D-RAM
104130 DRAMAD= EMT!130 ;SELECT D-RAM ADDRESS
104202 CLKPRM= EMT!202 ;RETURN ADDRESS OF "CLKDFL" WORD
104131 BURST= EMT!131 ;BURST M-BOX CLOCK
104132 PNTCPU= EMT!132 ;PRINT CPU, C-RAM & REGISTERS
104142 PNTCRM= EMT!142 ;PRINT C-RAM, LOGICAL FIELD FORMAT
104143 PNTDRM= EMT!143 ;PRINT D-RAM, LOGICAL FIELD FORMAT
104133 PRGCMD= EMT!133 ;PROGRAM COMMAND
104216 PRGNPT= EMT!216 ;PROGRAM COMMAND, NO PRINT
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 16
PRM11 PAL[KL,SYS] Page 8 MACRO DEFINITIONS
.SBTTL MACRO DEFINITIONS
145030 .IIF P2, $$CLIT==$$LITT ;LITERAL STORAGE ASSIGNMENT
.IELSE $$CLIT==2000
.MACRO PMSG $ARG
$PMSG
$$CLIT
.NLIST SRC
$$CLC=.
.=$$CLIT
.ASCIZ ↔$ARG↔
$$CLIT=.
.=$$CLC
.LIST SRC
.ENDM
.MACRO PMSGR $ARG
$PMSGR
$$CLIT
.NLIST SRC
$$CLC=.
.=$$CLIT
.ASCIZ ↔$ARG↔
$$CLIT=.
.=$$CLC
.LIST SRC
.ENDM
.MACRO PNTMSG $ARG
MOV #$$CLIT,R0
PNTAL
.NLIST SRC
$$CLC=.
.=$$CLIT
.ASCIZ ↔$ARG↔
.EVEN
$$CLIT=.
.=$$CLC
.LIST SRC
.ENDM
.MACRO EXIT
JMP $EXIT
.ENDM
.MACRO EXITSKP
JMP $EXITS
.ENDM
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 17
PRM11 PAL[KL,SYS] Page 8.1 MACRO DEFINITIONS
.MACRO EXITERR
JMP $EXITE
.ENDM
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 18
PRM11 PAL[KL,SYS] Page 9 MACRO DEFINITIONS
;BASIC MACROS
.MACRO PUSH A
.NLIST SRC
.IRP B,<A>
MOV B,-(SP) ;PUSH B ON STACK
.ENDM
.LIST SRC
.ENDM
.MACRO POP A
.NLIST SRC
.IRP B,<A>
MOV (SP)+,B ;POP STACK INTO B
.ENDM
.LIST SRC
.ENDM
.MACRO MULT SOURCE,REG
PUSH SOURCE
PUSH REG
MULTPY
POP REG
.NTYPE X,REG
.IF EQ X&1
.IFT
POP REG+1
.IFF
INC SP
INC SP
.ENDC
.ENDM
.MACRO .LIT $LTAG,$LARG
$$CLC=.
.=$$CLIT
.EVEN
$LTAG=.
.IIF B <$LARG>,0
.IIF NB <$LARG>,$LARG
.EVEN
$$CLIT=.
.=$$CLC
.ENDM
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 19
PRM11 PAL[KL,SYS] Page 10 MACRO DEFINITIONS
.MACRO SL REG,NUM
.NLIST SRC
.IF GT NUM-7
.IFT
SWAB REG
.REPT NUM-8.
ASL REG
.ENDR
.IFF
.REPT NUM
ASL REG
.ENDR
.ENDC
.LIST SRC
.ENDM
.MACRO SR REG,NUM
.NLIST SRC
.IF GT NUM-7
.IFT
SWAB REG
.REPT NUM-8
ASR REG
.ENDR
.IFF
.REPT NUM
ASR REG
.ENDR
.ENDC
.LIST SRC
.ENDM
.MACRO EXOR REG,DESTIN,SCRTCH
.IF NB SCRTCH
.IFT
MOV REG,SCRTCH
BIC DESTIN,SCRTCH
BIC REG,DESTIN
BIS SCRTCH,DESTIN
.IFF
MOV REG,-(SP)
BIC DESTIN,(SP)
BIC REG,DESTIN
BIS (SP)+,DESTIN
.ENDC
.ENDM
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 20
PRM11 PAL[KL,SYS] Page 11 MACRO DEFINITIONS
;STANDARD PROGRAM ASSIGNMENTS
.IIF NDF STACK, STACK==157776 ;INITIAL STACK POINTER
.IIF NDF CONSOL,CONSOL==100000 ;CONSOLE START ADDRESS
000001 CBIT= 1 ;CARRY BIT
000010 NBIT= 10 ;NEGATIVE BIT
000004 ZBIT= 4 ;ZERO BIT
000002 VBIT= 2 ;OVERFLOW BIT
000020 TBIT= 20 ;TRAP BIT
;REGISTER DEFINITIONS
000000 R0= %0 ;GENERAL REGISTERS
000001 R1= %1
000002 R2= %2
000003 R3= %3
000004 R4= %4
000005 R5= %5
000006 R6= %6
000006 SP= %6 ;STACK POINTER
000007 PC= %7 ;PROGRAM COUNTER
;PDP11/40 STANDARD TRAP VECTOR ASSIGNMENTS
000000 RESVED= 0 ;RESERVED
000004 ERRVEC= 4 ;TIME OUT, BUS ERROR
000010 RESVEC= 10 ;RESERVED INSTRUCTION
000014 TRTVEC= 14 ;BREAK POINT VECTOR
000014 TBITVEC=14
000014 BPTVEC= 14
000020 IOTVEC= 20 ;IOT TRAP VECTOR
000024 PWRVEC= 24 ;POWER FAIL TRAP VECTOR
000030 EMTVEC= 30 ;EMT TRAP VECTOR
000034 TRAPVEC=34 ;"TRAP" TRAP VECTOR
000060 TKVEC= 60 ;TTY KEYBOARD VECTOR
000064 TPVEC= 64 ;TTY PRINTER VECTOR
000260 TA11= 260 ;CASSETTE TAPE READER
000214 TC11= 214 ;DECTAPE VECTOR
;PDP11/40 STANDARD ADDRESS ASSIGNMENTS
177776 PS= 177776 ;CPU STATUS
177774 STKLMT= 177774 ;STACK LIMIT
177570 SWR= 177570 ;CONSOLE SWITCH REGISTER
177566 TTODBR= 177566 ;TTY OUT DBR
177564 TTOCSR= 177564 ;TTY OUT CSR
177562 TTIDBR= 177562 ;TTY IN DBR
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 21
PRM11 PAL[KL,SYS] Page 11.1 MACRO DEFINITIONS
177560 TTICSR= 177560 ;TTY IN CSR
174200 XORCR= 174200
174202 XORSR= 174202
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 22
PRM11 PAL[KL,SYS] Page 12 MACRO DEFINITIONS
;BIT ASSIGNMENTS
000001 BIT00= 1
000001 BIT0= BIT00
000002 BIT01= 2
000002 BIT1= BIT01
000004 BIT02= 4
000004 BIT2= BIT02
000010 BIT03= 10
000010 BIT3= BIT03
000020 BIT04= 20
000020 BIT4= BIT04
000040 BIT05= 40
000040 BIT5= BIT05
000100 BIT06= 100
000100 BIT6= BIT06
000200 BIT07= 200
000200 BIT7= BIT07
000400 BIT08= 400
000400 BIT8= BIT08
001000 BIT09= 1000
001000 BIT9= BIT09
002000 BIT10= 2000
004000 BIT11= 4000
010000 BIT12= 10000
020000 BIT13= 20000
040000 BIT14= 40000
100000 BIT15= 100000
;PRIORITY ASSIGNMENTS
000000 PR0= 000
000040 PR1= 040
000100 PR2= 100
000140 PR3= 140
000200 PR4= 200
000240 PR5= 240
000300 PR6= 300
000340 PR7= 340
000140 .IIF DF SAILVR, CPUPR==PR3 ;CLOCK AND DL11E INTERRUPTS ARE PERMITTED
.IIF NDF SAILVR, CPUPR==PR7
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 23
PRM11 PAL[KL,SYS] Page 13 MACRO DEFINITIONS
;CHARACTERS USED
000030 MSWCHR= 030 ; MONITOR TO "KLDCP" SWITCH CHAR, CONTROL X
000000 TEXTERM=0 ; TERMINATES TEXT
000011 TAB= 11 ; TAB
000011 CNTRLI= 11 ; CONTROL-I (TAB)
000012 LF= 12 ; LINE FEED
000013 VT= 13 ; VERTICAL TAB
000014 FF= 14 ; FORM FEED
000015 CR= 15 ; CARRIAGE RETURN
000007 BELL= 7 ; BELL
000040 BLANK= 40 ; BLANK (SPACE)
000040 SPACE= 40 ; SPACE
000054 COMMA= 54 ; COMMA
000057 SLASH= 57 ; SLASH
000134 BKSLH= 134 ; BACK SLASH
000137 BKARW= 137 ; BACK ARROW
000023 XOFF= 023 ; X-OFF (CONTROL S)
000021 XON= 021 ; X-ON (CONTROL Q)
000017 CNTRLO= 017 ; CONTROL O
000025 CNTRLU= 025 ; CONTROL U
000001 CNTRLA= 001 ; CONTROL A
000003 CNTRLC= 003 ; CONTROL C
000004 CNTRLD= 004 ; CONTROL D
000013 CNTRLK= 013 ; CONTROL K
000014 CNTRLL= 14 ; CONTROL L
000022 CNTRLR= 022 ; CONTROL R
000024 CNTRLT= 024 ; CONTROL T
000030 CNTRLX= 030 ; CONTROL X
000032 CNTRLZ= 032 ; CONTROL Z
000177 RUBOUT= 177 ; RUB OUT
000033 ALTMOD= 33 ; ALTMODE
000027 ETB= 27 ; END OF TRANSMISSION BLOCK (CONTROL W)
.IF NDF SAILVR
NULL= 026 ; NULL FILLER CHAR
.IFF
000000 NULL= 000
.ENDC
000001 SYN= 001 ; COMMUNICATIONS SYNC CHAR (CONTROL A)
;.NLIST
.IF DF DTEASB
;.LIST
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 24
PRM11 PAL[KL,SYS] Page 14 DTE20 DEVICE REGISTER AND BIT DEFINITIONS, 4-JUNE-75
.SBTTL DTE20 DEVICE REGISTER AND BIT DEFINITIONS, 4-JUNE-75
174400 DTEADR= 174400 ;ADDRESS OF (FIRST) DTE20 DEVICE REGISTER BLOCK
000040 DTESIZ= 000040 ;SPACING BETWEEN CONSECUTIVE DTE20'S
000004 DTEMAX= 4 ;MAXIMUM NUMBER OF DTE20'S ON ONE PDP-11
000005 DTESZS= 5 ;SHIFT TO CONVERT DTE ADDRESS TO DTE #
.IF DF DTEDEF
;OFFSETS FROM THE BASE OF THE DTE20 DEVICE REGISTER BLOCK
;TO SPECIFIC 10/11 INTERFACE RAM LOCATIONS AND REGISTERS.
; THE FIRST 12 REGISTERS ARE NOT INITIALIZED BY "INIT" (BECAUSE THEY ARE IN RAMS)
000000 DLYCNT= 00 ;DELAY COUNT (ADDRESS XXXX00)
000002 DEXWD3= 02 ;DEPOSIT OR EXAMINE WORD 3 (ADDRESS XXXX02)
000004 DEXWD2= 04 ;DEPOSIT OR EXAMINE WORD 2 (ADDRESS XXXX04)
000006 DEXWD1= 06 ;DEPOSIT OR EXAMINE WORD 1 (ADDRESS XXXX06)
000010 TENAD1= 10 ;10 ADDRESS WORD 1 FOR DEX (ADDRESS XXXX10)
000012 TENAD2= 12 ;10 ADDRESS WORD 2 FOR DEX (ADDRESS XXXX12)
000014 TO10BC= 14 ;TO10 BYTE COUNT (ADDRESS XXXX14)
000016 TO11BC= 16 ;TO11 BYTE COUNT (ADDRESS XXXX16)
000020 TO10AD= 20 ;TO10 PDP11 MEMORY ADDRESS (ADDRESS XXXX20)
000022 TO11AD= 22 ;TO11 PDP11 MEMORY ADDRESS (ADDRESS XXXX22)
000024 TO10DT= 24 ;TO10 PDP11 DATA WORD (ADDRESS XXXX24)
000026 TO11DT= 26 ;TO11 PDP11 DATA WORD (ADDRESS XXXX26)
; THE LAST 4 REGISTERS ARE INITIALIZED BY "INIT" (BECAUSE THEY ARE IN FLIP-FLOPS)
000030 DIAG1= 30 ;DIAGNOSTIC WORD 1 (ADDRESS XXXX30)
000032 DIAG2= 32 ;DIAGNOSTIC WORD 2 (ADDRESS XXXX32)
000034 STATUS= 34 ;10/11 INTERFACE STATUS WORD (ADDRESS XXXX34)
000036 DIAG3= 36 ;DIAGNOSTIC WORD 3 (ADDRESS XXXX36)
.ENDC
; THE FOLLOWING ARE THE ADDRESSES OF THE DTE20 INTERRUPT VECTORS
000774 DTEIV0= 774 ;INTERRUPT VECTOR FOR DTE20 #0
000770 DTEIV1= 770 ;INTERRUPT VECTOR FOR DTE20 #1
000764 DTEIV2= 764 ;INTERRUPT VECTOR FOR DTE20 #2
000760 DTEIV3= 760 ;INTERRUPT VECTOR FOR DTE20 #3
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 25
PRM11 PAL[KL,SYS] Page 15 DTE20 DEVICE REGISTER AND BIT DEFINITIONS, 4-JUNE-75
;BIT ASSIGNMENTS FOR 10/11 INTERFACE REGISTERS
;BIT ASSIGNMENTS FOR TENAD1
100000 PHYS= BIT15 ;EXAMINE/DEP PHYSICAL ADDRESS
060000 USEVIR= BIT14!BIT13 ;EX/DP USER VIRTUAL ADDRESS
040000 XUPT= BIT14 ;EX/DP VIA USER PROCESS TABLE
020000 EXVIRT= BIT13 ;EX/DP EXEC VIRTUAL ADDRESS
010000 DEP= BIT12 ;MODE BIT FOR DEPOSIT (0=EXAMINE)
004000 PRTOFF= BIT11 ;PROTECT OFF
000000 XEPT= 0 ;EX/DP VIA EXEC PROCESS TABLE
;BIT ASSIGNMENTS FOR TO11BC
100000 INT10= BIT15 ;SET DONE AND INTERRUPT BOTH 10 AND 11
040000 ZSTOP= BIT14 ;STOP ON NULL (ZERO) CHARACTER
020000 BYTE2= BIT13 ;TWO EIGHT BIT BYTES PER WORD
020000 TO11BM= BIT13 ;TO-11 BYTE MODE
;BIT ASSIGNMENTS FOR DIAG1 (WRITE)
100000 DS00= BIT15 ;DIAGNOSTIC STATUS
040000 DS01= BIT14 ; "
020000 DS02= BIT13 ; "
010000 DS03= BIT12 ; "
004000 DS04= BIT11 ; "
002000 DS05= BIT10 ; "
001000 DS06= BIT9 ; "
000200 DFUNC= BIT7 ;DOING DIAGNOSTIC FUNCTION (DFRD,DFWRT,DFXCT)
000060 PULSE= BIT4!BIT5 ;SINGLE PULSE THE 10/11 CLOCK (ALSO SETS
;10/11 DIAGNOSTIC MODE)
000001 DCOMST= BIT0 ;DIAGNOSTIC COMMAND START
000001 DCSRT= BIT0 ;DIAGNOSTIC COMMAND START (NEW NAME FOR DCOMST)
000004 DSEND= BIT2 ;SEND THE EBUS DURING DIAGNOSTIC FUNCTION
000010 DIKL10= BIT3 ;KL10 DIAGNOSTIC MODE
000040 D1011= BIT5 ;10/11 INTERFACE DIAGNOSTIC MODE
;BIT ASSIGNMENTS FOR DIAG1 (READ)
000200 TO10= BIT7 ;INTERFACE MAJOR STATE = TO10 TRANSFER
000400 DEX= BIT8 ; " " " = DEPOSIT OR EXAMINE
000100 TO11= BIT6 ; " " " = TO11 TRANSFER
000020 VEC04= BIT4 ;VECTOR INTERRUPT ADDRESS BIT 4
000010 VEC03= BIT3 ; " " " " 3
000004 VEC02= BIT2 ; " " " " 2
001000 HALTLP= BIT9 ;EBOX IS IN HALT LOOP
002000 KLRUN= BIT10 ;RUN FLOP, KL IS EXECUTING INSTRUCTIONS
004000 ERRSTP= BIT11 ;EBOX CLOCK STOPPED DUE TO ERROR
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 26
PRM11 PAL[KL,SYS] Page 16 DTE20 DEVICE REGISTER AND BIT DEFINITIONS, 4-JUNE-75
;BIT ASSIGNMENTS FOR DIAG2 (WRITE)
040000 EDONES= BIT14 ;SET EBUS DONE
000100 DRESET= BIT6 ;PERFORM DIAGNOSTIC CLEAR
;BIT ASSIGNMENTS FOR DIAG2 (READ)
;BIT ASSIGNMENTS FOR DIAG3 (WRITE)
000040 SCD= BIT5 ;SHIFT CAPTURED DATA (PARITY ERROR DATA)
000020 CDD= BIT4 ;CLEAR DUPE & DURE ERROR FLAGS
000010 WEP= BIT3 ;WRITE EVEN (BAD) PARITY
000002 CNUPE= BIT1 ;CLEAR NUPE
000001 TO10BM= BIT0 ;TO-10 TRANSFER BYTES FROM THE 11
;BIT ASSIGNMENTS FOR DIAG3 (READ)
100000 RFMAD0= BIT15 ;RFM ADDRESS BIT 0
040000 RFMAD1= BIT14 ; " " " 1
020000 RFMAD2= BIT13 ; " " " 2
010000 RFMAD3= BIT12 ; " " " 3
;BIT ASSIGNMENTS FOR DIAG3 (READ)
100000 SWSLFT= BIT15 ;SWAP SELECT LEFT
040000 CAB08= BIT14 ;CAPTURED UNIBUS ADDRESS BIT 08
000020 DUPE= BIT4 ;DATO UNIBUS PARITY ERROR
000004 DURE= BIT2 ;DATO UNIBUS RECIEVER ERROR
000002 NUPE= BIT1 ;NPR UNIBUS PARITY ERROR
037000 UPECD= BIT13!BIT12!BIT11!BIT10!BIT9 ;UNIBUS PARITY ERR, CAPTURED DATA
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 27
PRM11 PAL[KL,SYS] Page 17 DTE20 DEVICE REGISTER AND BIT DEFINITIONS, 4-JUNE-75
;BIT ASSIGNMENTS FOR STATUS (WRITE)
100000 DON10S= BIT15 ;SET TO10 DONE
040000 DON10C= BIT14 ;CLEAR TO10 DONE
020000 ERR10S= BIT13 ;SET TO10 ERROR
010000 ERR10C= BIT12 ;CLEAR TO10 ERROR
004000 INT11S= BIT11 ;SET 10 REQ INTERRUPT (INTERRUPTS 11)
002000 INT11C= BIT10 ;CLEAR 10 REQ INTERRUPT (REMOVES INTERRUPT TO 11)
001000 PERCLR= BIT9 ;CLEAR -11 MEMORY PARITY ERROR
000400 INT10S= BIT8 ;SET REQUEST 10 INTERRUPT (INTERRUPTS 10)
000200 DON11S= BIT7 ;SET TO11 DONE
000100 DON11C= BIT6 ;CLEAR TO11 DONE
000040 INTRON= BIT5 ;ENABLE DTE20 TO INTERRUPT THE 11
000020 EBUSPC= BIT4 ;CLEAR EBUS PARITY ERROR
000010 INTROF= BIT3 ;DISABLE THE DTE20 11-INTERRUPTS
000004 EBUSPS= BIT2 ;SET EBUS PARITY ERROR
000002 ERR11S= BIT1 ;SET TO11 ERROR
000001 ERR11C= BIT0 ;CLEAR TO11 ERROR
;BIT ASSIGNMENTS FOR STATUS (READ)
100000 TO10DN= BIT15 ;TO10 DONE
020000 TO10ER= BIT13 ;TO 10 ERROR (NPR TIMEOUT OR BUS ERROR)
010000 RAMIS0= BIT12 ;DATA OUT OF DTE RAM IS ALL 0S (RFM=0)
004000 TO11DB= BIT11 ;10 REQUESTING 11 INTERRUPT (DOORBELL FROM 10)
002000 DXWRD1= BIT10 ;DEPOSIT OR EXAMINE WORD ONE
001000 D11MPE= BIT9 ;-11 MEMORY PARITY ERROR
000400 TO10DB= BIT8 ;REQUEST 10 INTERRUPT (DOORBELL FROM 11)
000200 TO11DN= BIT7 ;TO11 DONE
000100 EBSEL= BIT6 ;E BUFFER SELECT
000040 NULSTP= BIT5 ;NULL STOP
000020 BPARER= BIT4 ;EBUS PARITY ERROR
000010 RM= BIT3 ;THIS DTE20 IN RESTRICTED MODE
000004 DEXDON= BIT2 ;DEPOSIT OR EXAMINE DONE
000002 TO11ER= BIT1 ;TO 11 ERROR (NPR TIMEOUT OR BUS ERROR)
000001 INTSON= BIT0 ;INTERRUPTS ON, DTE20 ENABLED TO INTERRUPT 11
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 28
PRM11 PAL[KL,SYS] Page 18 DTE20 DEVICE REGISTER AND BIT DEFINITIONS, 4-JUNE-75
;CLOCK CONTROL FUNCTIONS
000000 STPCLK= 000 ; STOP CLOCK
000001 STRCLK= 001 ; START CLOCK
000002 SSCLK= 002 ; SINGLE STEP THE MBOX CLOCK
000003 SECLK= 003 ; SINGLE STEP EBOX CLOCK
000004 CECLK= 004 ; CONDITIONAL EBOX CLOCK
000006 CLRMR= 006 ; CLEAR MR RESET
000007 SETMR= 007 ; SET MR RESET
000005 BRCLK= 005 ; BURST THE CLOCK
;CLOCK LOAD FUNCTIONS
000042 LDBRR= 42 ; LOAD BURST REGISTER RIGHT HALF
000043 LDBRL= 43 ; LOAD BURST REGISTER LEFT HALF
000044 LDSEL= 44 ; LOAD SOURCE AND RATE SELECTS
000045 LDDIS= 45 ; LOAD EBOX CLOCK DISTRIBUTION REGISTER
000046 LDCHK1= 46 ; LOAD PARITY CHECK REGISTER (ENABLE BAD PARITY STOP)
000047 LDCHK2= 47 ; LOAD EBOX INTERNAL CHECK REGISTER
;DRAM FUNCTIONS
000060 LDRAM1= 60 ; LOAD A & B FIELDS EVEN
000061 LDRAM2= 61 ; LOAD A & B FIELDS ODD
000062 LDRAM3= 62 ; LOAD COMMON J1-J4
000063 LDRJEV= 63 ; LOAD PARITY & J8-J10 EVEN
000064 LDRJOD= 64 ; LOAD PARITY & J8-J10 ODD
000133 DRAMAB= 133 ; READ D-RAM A & B
000135 DRJ710= 135 ; READ D-RAM J7-J10
000134 DRJ1.4= 134 ; READ D-RAM J1-J4
;IR DRAM CONTROL
000065 DISIOJ= 65 ; DISABLE 7XX & JRST=254
000066 DISACF= 66 ; DISABLE THE IR AC'C
000067 ENIOJA= 67 ; ENABLE 7XX, JRST=254 & IR AC'S
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 29
PRM11 PAL[KL,SYS] Page 19 DTE20 DEVICE REGISTER AND BIT DEFINITIONS, 4-JUNE-75
;CRAM FUNCTIONS
000057 LCRAM1= 57 ; LOAD C-RAM DATA
000056 LCRAM2= 56
000055 LCRAM3= 55
000054 LCRAM4= 54
000053 LCRAM5= 53
000052 LCRDAL= 52 ; LOAD CRAM ADDRESS LEFT (00-04)
000051 LCRDAR= 51 ; LOAD CRAM ADDRESS RIGHT (05-10)
000147 RCRAM1= 147 ; READ C-RAM DATA
000146 RCRAM2= 146
000145 RCRAM3= 145
000144 RCRAM4= 144
000141 RCSPEC= 141 ; READ C-RAM SPEC
;MISC CONTROL FUNCTIONS
000014 IRLOAD= 14 ; LOAD THE IR FROM AD
000015 DRLTCH= 15 ; LOAD D-RAM LATCHES
000010 CLRRUN= 10 ; CLEAR RUN FLIP-FLOP
000011 SETRUN= 11 ; SET RUN FLIP-FLOP
000012 CONBUT= 12 ; THE CONTINUE BUTTON
000077 LDAR= 77 ; LOAD THE AR
;MBOX CONTROL FUNCTIONS
000071 LDMBXA= 71 ; LOAD MEMORY TO CACHE SELECTOR
000070 LDCHAN= 70 ; LOAD CHANNEL DIAGNOSTIC CONDITIONS
;PI CONTROL FUNCTIONS
000100 READ0= 100 ; PI (READ STATUS 0)
000101 READ1= 101 ; PI (READ STATUS 1)
000102 READ2= 102 ; PI (READ STATUS 2)
000103 READ3= 103 ; PI (READ STATUS 3)
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 30
PRM11 PAL[KL,SYS] Page 20 DTE20 DEVICE REGISTER AND BIT DEFINITIONS, 4-JUNE-75
;DATA PATH CONTROL FUNCTIONS
000120 DPAR =120 ; AR
000121 DPBR =121 ; BR
000122 DPMQ =122 ; MQ
000123 DPFM =123 ; FM
000114 DPFMA =114 ; FM ADR
000124 DPBRX =124 ; BRX
000125 DPARX =125 ; ARX
000126 DPADX =126 ; ADX
000127 DPAD =127 ; AD
000153 DPPC =153 ; PC
000157 DPVMA =157 ; VMA
000157 DPVMHD =157 ; VMA HELD
000153 DPADB =153 ; ADDRESS BREAK
000167 DPERG =167 ; E-BUS REGISTER
000132 DPFE =132 ; FE 05-09
000133 DPFE1 =133 ; FE 00-04
000130 DPSC =130 ; SC 05-09
000131 DPSC1 =131 ; SC 00-04
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 31
PRM11 PAL[KL,SYS] Page 21 KL10 EBOX MACRO DEFINITIONS, 4-JUNE-75
.SBTTL KL10 EBOX MACRO DEFINITIONS, 4-JUNE-75
;MACRO TO TURN 36 BIT WORDS INTO 5 UPSIDE DOWN BYTES
.MACRO WD36 A,B,C
.NLIST SRC
.BYTE <377&C>,<<<C&7400>/400>!<<B&17>*20>>,<<B&7760>/20>
.BYTE <A&377>,<<A&7400>/400>
.LIST SRC
.ENDM
;PDP10 CPU INSTRUCTION MACRO. TAKES 5 ARGUMENTS AS IN NORMAL
;10 CODE. 5 FIELDS MUST BE PRESENT (4 FIELD SEPARATORS)
;BUT THE AD,AC,I, AND XR FIELDS MAY BE LEFT BLANK AND IF SO,
;WILL ASSEMBLE AS ZERO. THE OP FIELD MUST NOT BE LEFT BLANK.
.MACRO I10 OP,CAC,CI,CAD,CXR
ADH=0
ADL=0
.IF NB CAD
.IRPC AD1,CAD
.IIF GE <ADL-10000>,ADH=ADL/10000
ADL=10*<ADL&7777>+AD1
.ENDM
.ENDC
.IIF B CAC,AC=0
.IIF NB CAC,AC=CAC
.IIF B CI,I=0
.IIF NB CI,I=CI
.IIF B CXR,XR=0
.IIF NB CXR,XR=CXR
.NLIST SRC
.BYTE <ADL&377>,<<ADL/400>!<ADH*200&377>>,<AC&1*200+<I*100+<XR*4>>+<ADH/2>>
.BYTE <OP&37*10+<AC/2>>,<OP/40>
.LIST SRC
.ENDM I10
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 32
PRM11 PAL[KL,SYS] Page 22 KL10 EBOX MACRO DEFINITIONS, 4-JUNE-75
;MACRO TO GENERATE A RIGHT JUSTIFIED 3-BYTE VALUE
;FOR A 22-BIT ARGUMENT
.MACRO WD22 AD
ADH=0
ADL=0
.IRPC AD1,AD
.IIF GE <ADL-10000>,ADH=<10*ADH>+<ADL/10000>
ADL=10*<ADL&7777>+AD1
.ENDM
.NLIST SRC
.BYTE <ADL&377>,<<ADL/400>!<ADH*200&377>>,<ADH/2>
.LIST SRC
.ENDM WD22
;PDP10 I/O INSTRUCTION MACRO. TAKES 5 ARGUMENT AS NOTED ABOVE
;IN THE DESCRIPTION OF THE I10 MACRO. THE 8 I/O OP CODES ARE
;DEFINED AS ARE DEVICE CODES APR, PI, PAG, AND CCA.
.MACRO IO10 OP,DV,CI,AD,CXR
.IIF B CI,I=0
.IIF NB CI,I=CI
.IIF B CXR,XR=0
.IIF NB CXR,XR=CXR
BLKO=2
DATAO=3
BLKI=0
DATAI=1
CONO=4
CONI=5
CONSZ=6
CONSO=7
APR=0
PI=4
PAG=10
CCA=14
ADH=0
ADL=0
.IRPC AD1,AD
.IIF GE <ADL-10000>,ADH=ADL/10000
ADL=10*<ADL&7777>+AD1
.ENDM
.NLIST SRC
.BYTE <ADL&377>,<<ADL/400>!<ADH*200&377>>,<OP&1*200+<I*100+<XR*4>>+<ADH/2>>
.BYTE <DV&374+<OP/2>>,<DV/400+16>
.LIST SRC
.ENDM IO10
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 33
PRM11 PAL[KL,SYS] Page 23 KL10 EBOX MACRO DEFINITIONS, 4-JUNE-75
;THIS IS A MACRO TO WAIT FOR A DONE FLAG
.MACRO WFZERO BITSEL
MOV #2500.,-(SP) ;SET TIMEOUT CNT
91$: BIT #BITSEL,@.DIAG1 ;TEST BIT
BEQ 92$ ;LEAVE IF BIT ZERO(OK)
DEC (SP) ;DECREMENT CNT
BNE 91$ ;CONTINUE LOOP
TST RPTFLG ;OTHERWISE TIME OUT
BNE 92$
JSR R1,$DFTIM
92$: TST (SP)+ ;RESET STACK & CONTINUE
.ENDM
;THIS MACRO IS A WAIT FOR FLAG MACRO.
;IT WAITS FOR A TEST BIT TO GO TO ONE
;FROM A ZERO
.MACRO WFONE BITSEL
MOV #2500.,-(SP) ;SET TIMEOUT CNT
93$: BIT #BITSEL,@.STDTE ;TEST BIT
BNE 94$ ;LEAVE IF NOW A ONE(OK)
DEC (SP) ;DECREMENT CNT
BNE 93$ ;CONTINUE LOOP
TST RPTFLG ;OTHERWISE TIME OUT
BNE 94$
JSR R1,$DFTIM
94$: TST (SP)+ ;RESET STACK
.ENDM
;.NLIST
.ENDC ; DTEASB
;.LIST
;.NLIST
.IF DF DTEBBD
;.LIST
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 34
PRM11 PAL[KL,SYS] Page 24 KL10 EBOX MACRO DEFINITIONS, 4-JUNE-75
.SBTTL *BBD* DTE20 DEVICE REGISTER AND BIT DEFINITIONS, 2-JAN-75
DTEADR= 164000 ;ADDRESS OF (FIRST) DTE20 DEVICE REGISTER BLOCK
DTESIZ= 000040 ;SPACING BETWEEN CONSECUTIVE DTE20'S
DTEMAX= 4 ;MAXIMUM NUMBER OF DTE20'S ON ONE PDP-11
DTESZS= 5 ;SHIFT TO CONVERT DTE ADDRESS TO DTE #
.IF DF DTEDEF
;OFFSETS FROM THE BASE OF THE DTE20 DEVICE REGISTER BLOCK
;TO SPECIFIC 10/11 INTERFACE RAM LOCATIONS AND REGISTERS.
; THE FIRST 12 REGISTERS ARE NOT INITIALIZED BY "INIT" (BECAUSE THEY ARE IN RAMS)
DLYCNT= 00 ;DELAY COUNT (ADDRESS XXXX00)
DEXWD1= 02 ;DEPOSIT OR EXAMINE WORD 1 (ADDRESS XXXX02)
DEXWD2= 04 ;DEPOSIT OR EXAMINE WORD 2 (ADDRESS XXXX04)
DEXWD3= 06 ;DEPOSIT OR EXAMINE WORD 3 (ADDRESS XXXX06)
TENAD1= 10 ;10 ADDRESS WORD 1 FOR DEX (ADDRESS XXXX10)
TENAD2= 12 ;10 ADDRESS WORD 2 FOR DEX (ADDRESS XXXX12)
TO10BC= 14 ;TO10 BYTE COUNT (ADDRESS XXXX14)
TO11BC= 16 ;TO11 BYTE COUNT (ADDRESS XXXX16)
TO10AD= 20 ;TO10 PDP11 MEMORY ADDRESS (ADDRESS XXXX20)
TO11AD= 22 ;TO11 PDP11 MEMORY ADDRESS (ADDRESS XXXX22)
TO10DT= 24 ;TO10 PDP11 DATA WORD (ADDRESS XXXX24)
TO11DT= 26 ;TO11 PDP11 DATA WORD (ADDRESS XXXX26)
; THE LAST 4 REGISTERS ARE INITIALIZED BY "INIT" (BECAUSE THEY ARE IN FLIP-FLOPS)
DIAG1= 30 ;DIAGNOSTIC WORD 1 (ADDRESS XXXX30)
DIAG2= 32 ;DIAGNOSTIC WORD 2 (ADDRESS XXXX32)
STATUS= 34 ;10/11 INTERFACE STATUS WORD (ADDRESS XXXX34)
DIAG3= 36 ;DIAGNOSTIC WORD 3 (ADDRESS XXXX36)
.ENDC
; THE FOLLOWING ARE THE ADDRESSES OF THE DTE20 INTERRUPT VECTORS
DTEIV0= 170 ;INTERRUPT VECTOR FOR DTE20 #0
DTEIV1= 174 ;INTERRUPT VECTOR FOR DTE20 #1
DTEIV2= 270 ;INTERRUPT VECTOR FOR DTE20 #2
DTEIV3= 274 ;INTERRUPT VECTOR FOR DTE20 #3
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 35
PRM11 PAL[KL,SYS] Page 25 KL10 EBOX MACRO DEFINITIONS, 4-JUNE-75
; THE FOLLOWING MACRO (DTEVEC) DYNAMICLY COMPUTES THE INTERRUPT
; VECTOR ADDRESS ASSOCIATED WITH A PARTICULAR DTE20.
; THE FIRST ARGUMENT (DTEDRB) IS A REGISTER OR MEMORY LOCATION
; WHICH CONTAINS THE BASE ADDRESS OF THE DEVICE REGISTER BLOCK
; FOR A PARTICULAR DTE20.
; THE SECOND ARGUMENT (DTEIVB) IS A REGISTER OR MEMORY LOCATION
; INTO WHICH THIS MACRO WILL STORE THE BASE ADDRESS OF THE INTERRUPT
; VECTOR ASSOCIATED WITH THE SAME DTE20.
.MACRO DTEVEC DTEDRB,DTEIVB,?LABEL
MOVB DTEDRB,DTEIVB
.NTYPE DTE$T0,DTEIVB
.IF NE DTE$T0&70 ;IS "DTEIVB" A REGISTER?
.IFT
CLRB DTEIVB+1
.ENDC
ADD #DTEIV0,DTEIVB ;THIS MACRO DEPENDS ON THE BIT
BIT #DTESIZ,DTEIVB ;PATTERNS IN THE DEVICE REGISTER
BNE LABEL ;ADDRESSES AND INTERRUPT VECTOR
SUB #DTESIZ+DTEIV0-DTEIV1,DTEIVB ;ADDRESSES.
LABEL:
.ENDM DTEVEC
;BIT ASSIGNMENTS FOR 10/11 INTERFACE REGISTERS
;BIT ASSIGNMENTS FOR TENAD1
DEP=BIT15 ;MODE BIT FOR DEPOSIT (0=EXAMINE)
F1=BIT7 ;HIGH ORDER BIT OF FAST AC BLOCK
F2=BIT6 ;LOW " " " " " "
;BIT ASSIGNMENTS FOR TO10BC
INT11=BIT15 ;SET DONE AND INTERRUPT BOTH 10 AND 11
;BIT ASSIGNMENTS FOR TO11BC
INT10=BIT15 ;SET DONE AND INTERRUPT BOTH 10 AND 11
ZSTOP=BIT14 ;STOP ON NULL (ZERO) CHARACTER
;BIT ASSIGNMENTS FOR TO10AD AND TO11AD
BYTE2=BIT0 ;TWO EIGHT-BIT BYTES PER WORD
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 36
PRM11 PAL[KL,SYS] Page 26 KL10 EBOX MACRO DEFINITIONS, 4-JUNE-75
;BIT ASSIGNMENTS FOR DIAG1 (WRITE)
DPULSE=BIT7 ;PULSE THE KL10 CLOCK
PULSE=BIT4!BIT0 ;SINGLE PULSE THE 10/11 CLOCK (ALSO SETS
;10/11 DIAGNOSTIC MODE)
DBUSEN=BIT3 ;DIAGNOSTIC BUS ENABLE
DCSRT=BIT3 ;DIAGNOSTIC COMMAND START (NEW NAME FOR DBUSEN)
DSEND=BIT2 ;SEND THE EBUS DURING DIAGNOSTIC FUNCTION
DIKL10=BIT1 ;KL10 DIAGNOSTIC MODE
D1011=BIT0 ;10/11 INTERFACE DIAGNOSTIC MODE
;BIT ASSIGNMENTS FOR DIAG1 (READ)
TO10=BIT7 ;INTERFACE MAJOR STATE = TO10 TRANSFER
DEX=BIT6 ; " " " = DEPOSIT OR EXAMINE
TO11=BIT5 ; " " " = TO11 TRANSFER
VEC04=BIT4 ;VECTOR INTERRUPT ADDRESS BIT 4
VEC03=BIT3 ; " " " " 3
VEC02=BIT2 ; " " " " 2
;BIT ASSIGNMENTS FOR DIAG2 (WRITE)
EDONES=BIT14 ;SET EBUS DONE
STHOLD=BIT7 ;STAY IN CURRENT MAJOR STATE
CLEAR=BIT6 ;PERFORM DIAGNOSTIC CLEAR
;BIT ASSIGNMENTS FOR DIAG2 (READ)
;BIT ASSIGNMENTS FOR DIAG3 (READ)
RAMIS0=BIT7 ;RFM=0 (ALL ZEROES COMING OUT OF RAM)
RFMAD0=BIT1 ;RFM ADDRESS BIT 0
RFMAD1=BIT8 ; " " " 1
RFMAD2=BIT9 ; " " " 2
RFMAD3=BIT10 ; " " " 3
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 37
PRM11 PAL[KL,SYS] Page 27 KL10 EBOX MACRO DEFINITIONS, 4-JUNE-75
;BIT ASSIGNMENTS FOR STATUS (WRITE)
DON10S=BIT15 ;SET TO10 DONE
DON10C=BIT14 ;CLEAR TO10 DONE
ERR10S=BIT13 ;SET TO10 ERROR
ERR10C=BIT12 ;CLEAR TO10 ERROR
INT11S=BIT11 ;SET 10 REQ INTERRUPT (INTERRUPTS 11)
INT11C=BIT10 ;CLEAR 10 REQ INTERRUPT (REMOVES INTERRUPT TO 11)
PERCLR=BIT9 ;CLEAR -11 MEMORY PARITY ERROR
INT10S=BIT8 ;SET REQUEST 10 INTERRUPT (INTERRUPTS 10)
DON11S=BIT7 ;SET TO11 DONE
DON11C=BIT6 ;CLEAR TO11 DONE
ERR11S=BIT1 ;SET TO11 ERROR
ERR11C=BIT0 ;CLEAR TO11 ERROR
;BIT ASSIGNMENTS FOR STATUS (READ)
TO10DN=BIT15 ;TO10 DONE
PI10OF=BIT14 ;THIS DTE20 IS NOT TRYING TO INTERRUPT THE -10
TO10ER=BIT13 ;TO 10 ERROR (NPR TIMEOUT OR BUS ERROR)
INTR11=BIT12 ;11 INTERRUPT PENDING
DOOR10=BIT11 ;10 REQUESTING 11 INTERRUPT (DOORBELL FROM 10)
DXWRD1=BIT10 ;DEPOSIT OR EXAMINE WORD ONE
PARERR=BIT9 ;-11 MEMORY PARITY ERROR
DOOR11=BIT8 ;REQUEST 10 INTERRUPT (DOORBELL FROM 11)
TO11DN=BIT7 ;TO11 DONE
EBSEL=BIT6 ;E BUFFER SELECT
NULSTP=BIT5 ;NULL STOP
DEAD10=BIT4 ;KL10 STOPPED
DBUSON=BIT3 ;DIAGNOSTIC BUS ENABLED
DEXDON=BIT2 ;DEPOSIT OR EXAMINE DONE
TO11ER=BIT1 ;TO 11 ERROR (NPR TIMEOUT OR BUS ERROR)
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 38
PRM11 PAL[KL,SYS] Page 28 KL10 EBOX MACRO DEFINITIONS, 4-JUNE-75
; FUNCTION SELECT CODES
STPCLK =010 ; STOP CLOCK
STRCLK =011 ; START CLOCK
SSCLK =014 ; SINGLE STEP THE CLOCK
CLRMR =016 ; CLEAR MR RESET
SETMR =017 ; SET MR RESET
BRCLK =015 ; BURST THE CLOCK
LDCLK =012 ; LOAD CLOCK BURST COUNTER & RATE
CLKCND =101 ; READ CLOCK CONDITION
LDRAM1 =030 ; LOAD D-RAM DATA
LDRAM2 =031
LDRAM3 =032
RDRAMA =131 ; READ D-RAM ADDRESS
RDRAM1 =132 ; READ D-RAM DATA
RDRAM2 =133
DRAMAB =132 ; D-RAM A & B
DRAMJ =133 ; D-RAM J
LCRAM1 =040 ; LOAD C-RAM DATA
LCRAM2 =041
LCRAM3 =042
LCRAM4 =043
LCRAM5 =044
LCRAMA =047 ; LOAD C-RAM ADDRESS
RCRAM1 =140 ; READ C-RAM DATA AND ADDRESS
RCRAM2 =141 ; READ C-RAM DATA
RCRAM3 =142
RCRAM4 =143
RELCTR =000 ; RELINQUISH CONTROL OF THE TRANSLATOR
DIAGRD =001 ; SET TRANSLATOR IN 10 TO 11 DIRECTION
DIAGLD =002 ; SET TRANSLATOR IN 11 TO 10 DIRECTION
IRLOAD =003 ; ENABLE LOADING OF THE AR & IR REGISTERS
DRLTCH =005 ; LOAD D-RAM LATCHES
CLRRUN =007 ; CLEAR RUN FLIP-FLOP
SETRUN =006 ; SET RUN FLIP-FLOP
CONBUT =004 ; THE CONTINUE BUTTON
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 39
PRM11 PAL[KL,SYS] Page 29 KL10 EBOX MACRO DEFINITIONS, 4-JUNE-75
READ0 =110 ; PI (READ STATUS 0)
READ1 =111 ; PI (READ STATUS 1)
READ2 =112 ; PI (READ STATUS 2)
READ3 =113 ; PI (READ STATUS 3)
DPAR =120 ; AR (DATA PATH)
DPBR =121 ; BR
DPMQ =122 ; MQ
DPFM =123 ; FM
DPBRX =124 ; BRX
DPARX =125 ; ARX
DPADX =126 ; ADX
DPAD =127 ; AD
DPFE =133 ; FE
DPSC =131 ; SC
DPERG =157 ; E-BUS REGISTER
RDPCH =130 ; READ PC 18-26
RDPCL =131 ; READ PC 27-35
RDVMAH =132 ; READ VMA 18-26
RDVMAL =133 ; READ VMA 27-35
MCHLTLP =42 ; U CODE HALT LOOP ADDRESS
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 40
PRM11 PAL[KL,SYS] Page 30 KL10 EBOX MACRO DEFINITIONS, 4-JUNE-75
.SBTTL *BBD* KL10 EBOX MACRO DEFINITIONS, 4-MAR-75
;MACRO TO TURN 36 BIT WORDS INTO 5 UPSIDE DOWN BYTES
.MACRO WD36 A,B,C
.NLIST SRC
.BYTE <377&C>,<<<C&7400>/400>!<<B&17>*20>>,<<B&7760>/20>
.BYTE <A&377>,<<A&7400>/400>
.LIST SRC
.ENDM
;PDP10 CPU INSTRUCTION MACRO. TAKES 5 ARGUMENTS AS IN NORMAL
;10 CODE. 5 FIELDS MUST BE PRESENT (4 FIELD SEPARATORS)
;BUT THE AD,AC,I, AND XR FIELDS MAY BE LEFT BLANK AND IF SO,
;WILL ASSEMBLE AS ZERO. THE OP FIELD MUST NOT BE LEFT BLANK.
.MACRO I10 OP,CAC,CI,CAD,CXR
ADH=0
ADL=0
.IF NB CAD
.IRPC AD1,CAD
.IIF GE <ADL-10000>,ADH=ADL/10000
ADL=10*<ADL&7777>+AD1
.ENDM
.ENDC
.IIF B CAC,AC=0
.IIF NB CAC,AC=CAC
.IIF B CI,I=0
.IIF NB CI,I=CI
.IIF B CXR,XR=0
.IIF NB CXR,XR=CXR
.NLIST SRC
.BYTE <ADL&377>,<<ADL/400>!<ADH*200&377>>,<AC&1*200+<I*100+<XR*4>>+<ADH/2>>
.BYTE <OP&37*10+<AC/2>>,<OP/40>
.LIST SRC
.ENDM I10
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 41
PRM11 PAL[KL,SYS] Page 31 KL10 EBOX MACRO DEFINITIONS, 4-JUNE-75
;MACRO TO GENERATE A RIGHT JUSTIFIED 3-BYTE VALUE
;FOR A 22-BIT ARGUMENT
.MACRO WD22 AD
ADH=0
ADL=0
.IRPC AD1,AD
.IIF GE <ADL-10000>,ADH=<10*ADH>+<ADL/10000>
ADL=10*<ADL&7777>+AD1
.ENDM
.NLIST SRC
.BYTE <ADL&377>,<<ADL/400>!<ADH*200&377>>,<ADH/2>
.LIST SRC
.ENDM WD22
;PDP10 I/O INSTRUCTION MACRO. TAKES 5 ARGUMENT AS NOTED ABOVE
;IN THE DESCRIPTION OF THE I10 MACRO. THE 8 I/O OP CODES ARE
;DEFINED AS ARE DEVICE CODES APR, PI, PAG, AND CCA.
.MACRO IO10 OP,DV,CI,AD,CXR
.IIF B CI,I=0
.IIF NB CI,I=CI
.IIF B CXR,XR=0
.IIF NB CXR,XR=CXR
BLKO=2
DATAO=3
BLKI=0
DATAI=1
CONO=4
CONI=5
CONSZ=6
CONSO=7
APR=0
PI=4
PAG=10
CCA=14
ADH=0
ADL=0
.IRPC AD1,AD
.IIF GE <ADL-10000>,ADH=ADL/10000
ADL=10*<ADL&7777>+AD1
.ENDM
.NLIST SRC
.BYTE <ADL&377>,<<ADL/400>!<ADH*200&377>>,<OP&1*200+<I*100+<XR*4>>+<ADH/2>>
.BYTE <DV&374+<OP/2>>,<DV/400+16>
.LIST SRC
.ENDM IO10
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 42
PRM11 PAL[KL,SYS] Page 32 KL10 EBOX MACRO DEFINITIONS, 4-JUNE-75
;THIS IS A MACRO TO WAIT FOR A DONE FLAG
.MACRO WFZERO BITSEL
MOV #2500.,-(SP) ;SET TIMEOUT CNT
91$: BIT #BITSEL,@.DIAG1 ;TEST BIT
BEQ 92$ ;LEAVE IF BIT ZERO(OK)
DEC (SP) ;DECREMENT CNT
BNE 91$ ;CONTINUE LOOP
TST RPTFLG ;OTHERWISE TIME OUT
BNE 92$
JSR R1,$DFTIM
92$: TST (SP)+ ;RESET STACK & CONTINUE
.ENDM
;THIS MACRO IS A WAIT FOR FLAG MACRO.
;IT WAITS FOR A TEST BIT TO GO TO ONE
;FROM A ZERO
.MACRO WFONE BITSEL
MOV #2500.,-(SP) ;SET TIMEOUT CNT
93$: BIT #BITSEL,@.STDTE ;TEST BIT
BNE 94$ ;LEAVE IF NOW A ONE(OK)
DEC (SP) ;DECREMENT CNT
BNE 93$ ;CONTINUE LOOP
TST RPTFLG ;OTHERWISE TIME OUT
BNE 94$
JSR R1,$DFTIM
94$: TST (SP)+ ;RESET STACK
.ENDM
;.NLIST
.ENDC ; DTEBBD
;.LIST
;.NLIST
.IF DF DVASB
;.LIST
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 43
PRM11 PAL[KL,SYS] Page 33 KL10 EBOX MACRO DEFINITIONS, 4-JUNE-75
.SBTTL DEVICE SYMBOL DEFINITIONS, 4-JUNE-75
; PRIORITY LEVELS FOR SERVICE ROUTINES.
TPILEV= PR6 ; TERMINAL PRIORITY LEVEL
NXMPIL= PR7 ; "NON-X-MEM" PRIORITY LEVEL
DHRPS= TPILEV ; DH11 RECEIVER PRIORITY
DHTPS= DHRPS ; DH11 TRANSMITTER
DLRPS= DHRPS ; DL11
DLTPS= DLRPS
KWLPS= DHRPS ; KW11 PRIORITY LEVEL
NXMPS= NXMPIL ; "NON-X-MEM" PRIORITY LEVEL
; BIT DEFINITIONS FOR THE PARAMETER WORD.
PDHDNS= 11 ; DH11 DEVICE NUMBER SHIFT
PDHDNM= 7000 ; DH11 DEVICE NUMBER MASK
PDHLNS= 4 ; DH11 LINE NUMBER SHIFT
PDHLNM= 360 ; DH11 LINE NUMBER MASK
PDHLSS= 0 ; DH11 LINE SPEED SHIFT
PDHLSM= 17 ; DH11 LINE SPEED MASK
PDLFCS= PDHLNS ; DL11 FILLER CLASS SHIFT
PDLFCM= PDHLNS ; DL11 FILLER CLASS MASK
; OTHER DEVICES.
DP11BA= 174770 ; DP11 DEVICE REGISTERS BASE ADDRESS
DP11RS= 10 ; DP11 DEVICE REGISTER SIZE
DP11VS= 10 ; DP11 INTERRUPT VECTOR SIZE
DM11BA= 170500 ; DM11 DEVICE REGISTER BASE ADDRESS
DM11RS= 10 ; DM11 DEVICE REGISTER SIZE
DM11VS= 4 ; DM11 INTERRUPT VECTOR SIZE
DR11BA= 167770 ; DR11 DEVICE REGISTER BASE ADDRESS
DR11RS= 10 ; DR11 DEVICE REGISTER SIZE
DR11VS= 10 ; DR11 INTERRUPT VECTOR SIZE
;.NLIST
.ENDC ;DVASB
;.LIST
;.NLIST
.IF DF KWASB
;.LIST
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 44
PRM11 PAL[KL,SYS] Page 34 KW11 DEVICE REGISTERS AND BIT DEFINITIONS, 4-JUNE-75
.SBTTL KW11 DEVICE REGISTERS AND BIT DEFINITIONS, 4-JUNE-75
000100 KWLIV= 100 ; VECTOR ADDRESS
177546 KWLKS= 177546 ; LINE CLOCK STATUS DEVICE ADDRESS
000100 KWLKE= 100 ; LINE CLOCK INTERRUPT ENABLE BIT
.SBTTL MM11 DEVICE REGISTERS AND BIT ASSIGNMENTS, 4-JUNE-75
000114 MMLPIV= 114 ;VECTOR ADDRESS
172100 MMLPBA= 172100 ;1ST MM11-LP DEVICE ADDRESS
172136 MMLPEA= 172136 ;LAST MM11-LP DEVICE ADDRESS
100000 MMERRF= BIT15 ;ERROR FLAG
007740 MMADDM= 7740 ;ADDRESS MASK
000005 MMADDS= 5 ;ADDRESS SHIFT
000004 MMWWP= BIT2 ;WRITE WRONG PARITY
000001 MMPIE= BIT0 ;PARITY INTERRUPT ENABLE
;.NLIST
.ENDC ;KWASB
;.LIST
;.NLIST
.IF DF DLASB
;.LIST
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 45
PRM11 PAL[KL,SYS] Page 35 DL11 DEVICE REGISTERS AND BIT DEFINITIONS, 4-JUNE-75
.SBTTL DL11 DEVICE REGISTERS AND BIT DEFINITIONS, 4-JUNE-75
000060 DLRIV= 60 ; RECEIVER VECTOR ADDRESS
000064 DLTIV= DLRIV+4 ; TRANSMITTER VECTOR ADDRESS
177560 DLBA= 177560 ; BASE FOR DEVICE ADDRESSES
000000 DLRCSR= 0 ; RECEIVER STATUS REGISTER
000002 DLRBUF= 2 ; RECEIVER BUFFER REGISTER
000004 DLXCSR= 4 ; TRANSMITTER STATUS REGISTER
000006 DLXBUF= 6 ; TRANSMITTER BUFFER REGISTER
; BIT DEFINITIONS FOR "DLRCSR"- RECEIVER CONTROL STATUS REGISTER.
100000 DLDSC= BIT15 ; DATA STATUS CHANGE
040000 DLRI= BIT14 ; RING INDICATOR
020000 DLCTS= BIT13 ; CLEAR TO SEND
010000 DLCD= BIT12 ; CARRIER DETECT
004000 DLRA= BIT11 ; RECEIVER ACTIVE
002000 DLSRD= BIT10 ; SECONDARY RECEIVED DATA
000200 DLRD= BIT7 ; RECEIVER DONE
000100 DLRIE= BIT6 ; RECEIVER INTERRUPT ENABLE
000040 DLDIE= BIT5 ; DATA SET INTERRUPT ENABLE
000010 DLSTD= BIT3 ; SECONDARY TRANSMITTED DATA
000004 DLRTS= BIT2 ; REQUEST TO SEND
000002 DLDTR= BIT1 ; DATA TERMINAL READY
000001 DLRE= BIT0 ; READER ENABLE
; BIT DEFINITIONS FOR "DLRBUF"- RECEIVER BUFFER.
100000 DLERR= BIT15 ; ERROR
040000 DLORE= BIT14 ; OVERRUN ERROR
020000 DLFE= BIT13 ; FRAMING ERROR
010000 DLRDPE= BIT12 ; RECEIVED DATA PARITY ERROR
000000 DLRDS= 0 ; RECEIVED DATA SHIFT
000377 DLRDM= 377 ; RECEIVED DATA MASK
; BIT DEFINITIONS FOR "DLXCSR"- TRANSMITTER CONTROL STATUS REGISTER.
000200 DLTR= BIT7 ; TRANSMITTER READY
000100 DLTIE= BIT6 ; TRANSMITTER INTERRUPT ENABLE
000004 DLMAIN= BIT2 ; MAINTENANCE
000001 DLBRK= BIT0 ; BREAK
; BIT DEFINITIONS FOR "DLXBUF"- TRANSMITTER BUFFER.
000000 DLTDS= 0 ; TRANSMITTER DATA SHIFT
000377 DLTDM= 377 ; TRANSMITTER DATA MASK
;.NLIST
.ENDC ;DLASB
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 46
PRM11 PAL[KL,SYS] Page 35.1 DL11 DEVICE REGISTERS AND BIT DEFINITIONS, 4-JUNE-75
;.LIST
;.NLIST
.IF DF DHASB
;.LIST
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 47
PRM11 PAL[KL,SYS] Page 36 DL11 DEVICE REGISTERS AND BIT DEFINITIONS, 4-JUNE-75
.SBTTL DH11 DEVICE REGISTERS AND BIT DEFINITIONS, 4-JUNE-75
DHIVBA= 300 ; INTERRUPT VECTOR BASE ADDRESS
DHRIV= 0 ; RECEIVER VECTOR ADDRESS
DHTIV= DHRIV+4 ; TRANSMITTER VECTOR ADDRESS
DHBA= 160020 ; BASE FOR DEVICE ADDRESSES
DHSCR= 0 ; SYSTEM CONTROL REGISTER
DHNRCR= 2 ; NEXT RECEIVER CHARACTER REGISTER
DHLPR= 4 ; LINE PARAMETER REGISTER
DHCAR= 6 ; CURRENT ADDRESS REGISTER
DHBCR= 10 ; BYTE COUNT REGISTER
DHBAR= 12 ; TRANSMIT BUFFER ACTIVE REGISTER
DHTBR= 14 ; TRANSMIT BREAK REGISTER
DHSSR= 16 ; SILO STATUS REGISTER
; BIT DEFINITIONS FOR "DHSCR"- STATUS CONTROL REGISTER.
DHTI= BIT15 ; TRANSMITTER INTERRUPT
DHSI= BIT14 ; STORAGE INTERRUPT
DHTNIE= BIT13 ; TRANSMITTER AND NON-X-MEM INTERRUPT ENABLE
DHSIE= BIT12 ; STORAGE INTERRUPT ENABLE
DHMC= BIT11 ; MASTER CLEAR
DHNXM= BIT10 ; NON-X-MEM
DHMAIN= BIT9 ; MAINTENANCE
DHCNXM= BIT8 ; CLEAR NON-X-MEM BIT
DHRI= BIT7 ; RECEIVER INTERRUPT
DHRIE= BIT6 ; RECEIVER INTERRUPT ENABLE
DHMES= 4 ; MEMORY EXTENSION SHIFT
DHMEM= 60 ; MEMORY EXTENSION MASK
DHLSS= 0 ; LINE SELECTION SHIFT
DHLSM= 17 ; LINE SELECTION MASK
; BIT DEFINITIONS FOR "DHNRCR"- NEXT RECEIVER CHARACTER REGISTER.
DHDP= BIT15 ; DATA PRESENT
DHORE= BIT14 ; OVERRUN ERROR
DHFE= BIT13 ; FRAMING ERROR
DHRDPE= BIT12 ; RECEIVER DATA PARITY ERROR
DHRLNS= 10 ; RECEIVER LINE NUMBER SHIFT
DHRLNM= 7400 ; RECEIVER LINE NUMBER MASK
DHRDS= 0 ; RECEIVER DATA SHIFT
DHRDM= 377 ; RECEIVER DATA MASK
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 48
PRM11 PAL[KL,SYS] Page 37 DL11 DEVICE REGISTERS AND BIT DEFINITIONS, 4-JUNE-75
; BIT DEFINITIONS FOR "DHLPR"- LINE PARAMETER REGISTER.
DHAEE= BIT15 ; AUTO-ECHO ENABLE
DHHD= BIT14 ; HALF-DUPLEX
DHTSS= 12 ; TRANSMITTER SPEED SHIFT
DHTSM= 36000 ; TRANSMITTER SPEED MASK
DHRSS= 6 ; RECEIVER SPEED SHIFT
DHRSM= 1700 ; RECEIVER SPEED MASK
DHEP= BIT5 ; EVEN PARITY
DHPE= BIT4 ; PARITY ENABLE
DHTSB= BIT2 ; TWO STOP BITS
DHCLS= 0 ; CHARACTER LENGTH SHIFT
DHCLM= 3 ; CHARACTER LENGTH MASK
DHCL5= 0 ; CHARACTER LENGTH - 5 BITS
DHCL6= 1 ; CHARACTER LENGTH - 6 BITS
DHCL7= 2 ; CHARACTER LENGTH - 7 BITS
DHCL8= 3 ; CHARACTER LENGTH - 8 BITS
; BIT DEFINITIONS FOR "DHSSR"- SILO STATUS REGISTER.
DHSFLS= 10 ; SILO FILL LEVEL SHIFT
DHSFLM= 37400 ; SILO FILL LEVEL MASK
DHREMS= 6 ; READ EXTENDED MEMORY SHIFT
DHREMM= 300 ; READ EXTENDED MEMORY MASK
DHSALS= 0 ; SILO ALARM LEVEL SHIFT
DHSALM= 77 ; SILO ALARM LEVEL MASK
;.NLIST
.ENDC ;DHASB
;.LIST
;.NLIST
.IF DF TAASB
;.LIST
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 49
PRM11 PAL[KL,SYS] Page 38 DL11 DEVICE REGISTERS AND BIT DEFINITIONS, 4-JUNE-75
.SBTTL TA11 (CASSETTE) DEVICE REGISTER AND BIT DEFINITIONS, 4-JUNE-75
TACS= 177500 ;CONTROL AND STATUS REGISTER
TADB= TACS+2 ;DATA BUFFER REGISTER
TAIV= 260 ;INTERRUPT VECTOR
; BIT ASSIGNMENTS WITHIN THE CONTROL AND STATUS REGISTER
TAGO= 1 ;GO = START OPERATION
TAFUNC= 16 ;"FUNCTION TO BE PERFORMED" FIELD
TAWFG= 0*2 ;"WRITE FILE GAP" FUNCTION
TAWRIT= 1*2 ;"WRITE DATA" FUNCTION
TAREAD= 2*2 ;"READ DATA" FUNCTION
TASRF= 3*2 ;"SPACE REVERSE FILE" FUNCTION
TASRB= 4*2 ;"SPACE REVERSE BLOCK (RECORD)" FUNCTION
TASFF= 5*2 ;"SPACE FORWARD FILE" FUNCTION
TASFB= 6*2 ;"SPACE REVERSE BLOCK (RECORD)" FUNCTION
TAREWD= 7*2 ;"REWIND" FUNCTION
TAILBS= 20 ;INITIATE LAST BYTE SEQUENCE
TAREDY= 40 ;READY
TAINTE= 100 ;INTERRUPT ENABLE
TARQST= 200 ;TRANSFER REQUEST
TAUNIT= 400 ;UNIT SELECTION
TAOFFL= 1000 ;UNIT OFF LINE
TATERR= 2000 ;TIMING ERROR (LOST DATA)
TAFGAP= 4000 ;FILE GAP
TALOCK= 10000 ;WRITE LOCKED
TALEAD= 20000 ;CLEAR LEADER
TABCHK= 40000 ;BLOCK CHECK (BAD CRC AFTER READ)
TAEROR= 100000 ;ERROR (ERROR SUMMARY BIT)
;.NLIST
.ENDC ;TAASB
;.LIST
;.NLIST
.IF DF RXASB
;.LIST
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 50
PRM11 PAL[KL,SYS] Page 39 DL11 DEVICE REGISTERS AND BIT DEFINITIONS, 4-JUNE-75
.SBTTL RX11/RX01 (FLOPPY) REGISTERS AND BIT DEFINITIONS, 22-JULY-75
;RX11 STANDARD DEVICE ADDRESSES
RXCS= 177170 ;COMMAND STATUS REGISTER
RXDB= 177172 ;DATA BUFFER REGISTER
RXSA= 177172 ;SECTOR ADDRESS REGISTER
RXTA= 177172 ;TRACK ADDRESS REGISTER
RXES= 177172 ;ERROR STATUS REGISTER
RXIV= 264 ;INTERRUPT VECTOR ADDRESS
;RX11 FUNCTION CODES
RXFBUF= 0 ;FILL BUFFER
RXEBUF= 2 ;EMPTY BUFFER
RXWSEC= 4 ;WRITE SECTOR
RXRSEC= 6 ;READ SECTOR
RXRSTAT=12 ;READ STATUS
RXWDDS= 14 ;WRITE DELETED DATA SECTOR
RXRERR= 16 ;READ ERROR REGISTER
;RX11 COMMAND AND STATUS REGISTER BIT DEFINITIONS
RXGO= 1 ;GO
RXU1= 20 ;RX01 UNIT # 1
RXDONE= 40 ;DONE
RXIE= 100 ;INTERRUPT ENABLE
RXTREQ= 200 ;TRANSFER REQUEST
RXINI= 40000 ;INITIALIZE
RXERROR=100000 ;ERROR
;RX11 ERROR STATUS REGISTER BIT DEFINITIONS
RXCRCE= 1 ;CRC ERROR
RXPARE= 2 ;PARITY ERROR
RXIDONE=4 ;INITIALIZE DONE
RXDDD= 100 ;DELETED DATA DETECTED
RXDRDY =200 ;DRIVE READY
;.NLIST
.ENDC ;RXASB
;.LIST
;.NLIST
.IF DF TCASB
;.LIST
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 51
PRM11 PAL[KL,SYS] Page 40 TC11 (DECTAPE) DEVICE REGISTERS AND BIT DEFINITIONS, 4-JUNE-75
.SBTTL TC11 (DECTAPE) DEVICE REGISTERS AND BIT DEFINITIONS, 4-JUNE-75
;DECTAPE PARAMETERS
010000 TCILO= BIT12 ;ILLEGAL OPERATION
004000 TCSELE= BIT11 ;SELECTION ERROR
000100 TCIE= BIT6 ;INTERRUPT ENABLE
000001 TCDO= BIT0 ;DO OPERATION
000004 TCRDATA=BIT2 ;READ DATA
000014 TCWDATA=BIT3+BIT2 ;WRITE DATA
000002 TCRNUM= BIT1 ;READ BLOCK NUMBER
004000 TCREV= BIT11 ;REVERSE DIRECTION
040000 TCPAR= BIT14 ;PARITY ERROR
002000 TCBLKM= BIT10 ;BLOCK MISSED
001000 TCDATM= BIT9 ;DATA MISSED
020000 TCMTE= BIT13 ;MARK TRACK ERROR
100000 TCERR= BIT15 ;DECTAPE ERROR
000200 TCRDY= BIT7 ;READY
063000 TCSOFT= TCPAR+TCBLKM+TCDATM+TCMTE
177340 TCST= 177340 ;STATUS REGISTER
177342 TCCM= 177342 ;COMMAND REGISTER
177343 TCCM1= 177343 ;COMMAND UPPER BYTE
177344 TCWC= 177344 ;WORD COUNT REGISTER
177346 TCBA= 177346 ;BUS MEMORY ADDRESS
177350 TCDT= 177350 ;DATA REGISTER
;.NLIST
.ENDC ;TCASB
;.LIST
;.NLIST
.IF DF RPASB
;.LIST
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 52
PRM11 PAL[KL,SYS] Page 41 TC11 (DECTAPE) DEVICE REGISTERS AND BIT DEFINITIONS, 4-JUNE-75
.SBTTL RH11/RP04 REGISTER AND BIT DEFINITIONS, 4-JUNE-75
BLKSIZ= 256. ;DISK BLOCK SIZE (IN 16-BIT WORDS)
IFESIZ= 3 ;INDEX FILE ENTRY SIZE (IN 16-BIT WORDS)
FDESIZ= 16. ;FILE DIRECTORY ENTRY SIZE (IN 16-BIT WORDS)
RPCS1= 0 ;OFFSET TO RH11/RP04 CONTROL & STATUS REGISTER 1
RPTRE= BIT14 ;"TRANSFER ERROR" BIT IN RPCS1
RPMCPE= BIT13 ;"MASSBUS CONTROL BUS PARITY ERROR" BIT IN RPCS1
RPDVA= BIT11 ;"DRIVE AVAILABLE" BIT IN RPCS1
RPRDY= BIT7 ;"CONTROLLER READY" BIT IN RPCS1
RPPRST= 21 ;READ-IN PRESET FUNCTION IN RPCS1
RPPACK= 23 ;PACK ACKNOWLEDGE (SET VV) FUNCTION IN RPCS1
RPWTFN= 61 ;WRITE DATA FUNCTION IN RPCS1
RPRDFN= 71 ;READ DATA FUNCTION IN RPCS1
RPWC= 2 ;OFFSET TO RH11/RP04 WORD COUNT REGISTER
RPBA= 4 ;OFFSET TO RH11/RP04 UNIBUS ADDRESS REGISTER
RPDA= 6 ;OFFSET TO RH11/RP04 TRACK & SECTOR ADDRESS REGISTER
RPCS2= 10 ;OFFSET TO RH11/RP04 CONTROL & STATUS REGISTER 2
RPCLR= BIT5 ;"CONTROLLER (AND MASSBUS) CLEAR" BIT IN RPCS2
RPDS= 12 ;OFFSET TO RH11/RP04 DRIVE STATUS REGISTER
RPATA= BIT15 ;"ATTENTION ACTIVE" BIT IN RPDS
RPERR= BIT14 ;"COMPOSITE ERROR" BIT IN RPDS
RPMOL= BIT12 ;"MEDIUM ON-LINE" BIT IN RPDS
RPDPR= BIT8 ;"DRIVE PRESENT" BIT IN RPDS
RPDRY= BIT7 ;"DRIVE READY" BIT IN RPDS
RPVV= BIT6 ;"VOLUME VALID" BIT IN RPDS
RPOF= 32 ;OFFSET TO RH11/RP04 OFFSET REGISTER (CONTAINING FMT22)
RPFMT= BIT12 ;"FMT22" (16-BIT WORDS) BIT IN RPOF
RPECI= BIT11 ;"ERROR CORRECTION CODE INHIBIT" BIT IN RPOF
RPDC= 34 ;OFFSET TO RH11/RP04 DESIRED CYLINDER REGISTER
;.NLIST
.ENDC ;RPASB
;.LIST
;.NLIST
.IF DF LPASB
;.LIST
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 53
PRM11 PAL[KL,SYS] Page 42 TC11 (DECTAPE) DEVICE REGISTERS AND BIT DEFINITIONS, 4-JUNE-75
.SBTTL LP20 REGISTER AND BIT DEFINITIONS, 27-JUNE-75
LP20A= 177440 ;LP20 1ST CONTROLLER ADDRESS
LP20B= 177460 ;LP20 2ND CONTROLLER ADDRESS
LPAVEC= 210 ;LP20A INTERRUPT VECTOR
LPBVEC= 200 ;LP20B INTERRUPT VECTOR
LPCSRA= 0 ;OFFSET TO LP20 PRIMARY STATUS REGISTER
LPERR= BIT15 ;"ERROR" BIT IN LPCSRA
LPPZRO= BIT14 ;"PAGZRO" BIT IN LPCSRA
LPUCHR= BIT13 ;"UNDCHR" BIT IN LPCSRA
LPVRDY= BIT12 ;"UNDCHR" BIT IN LPCSRA
LPONLN= BIT11 ;"ONLINE" BIT IN LPCSRA
LPDELH= BIT10 ;"DELHLD" BIT IN LPCSRA
LPLINI= BIT9 ;"LOINIT" BIT IN LPCSRA
LPRERR= BIT8 ;"RSTERR" BIT IN LPCSRA
LPDONE= BIT7 ;"DONE" BIT IN LPCSRA
LPIENB= BIT6 ;"INTENB" BIT IN LPCSRA
LPBA17= BIT5 ;"BUSA17" BIT IN LPCSRA
LPBA16= BIT4 ;"BUSA16" BIT IN LPCSRA
LPVLOD= BIT3 ;"VFULOD" BIT IN LPCSRA
LPTMOD= BIT2 ;"TSTMOD" BIT IN LPCSRA
LPPENB= BIT1 ;"PARENB" BIT IN LPCSRA
LPGO= BIT0 ;"GO" BIT IN LPCSRA
LPCSRB= 2 ;OFFSET TO LP20 ERROR AND TEST REGISTER
LPTPBT= BIT12 ;"LPTPBT" BIT IN LPCSRB
LPT02= BIT10 ;"TEST02" BIT IN LPCSRB
LPT01= BIT9 ;"TEST01" BIT IN LPCSRB
LPT00= BIT8 ;"TEST00" BIT IN LPCSRB
LPOFFL= BIT7 ;"OFFLIN" BIT IN LPCSRB
LPVERR= BIT6 ;"VFUERR" BIT IN LPCSRB
LPTPAR= BIT5 ;"LPTPAR" BIT IN LPCSRB
LPMPAR= BIT4 ;"MEMPAR" BIT IN LPCSRB
LPRPAR= BIT3 ;"RAMPAR" BIT IN LPCSRB
LPSYNT= BIT2 ;"SYNTIM" BIT IN LPCSRB
LPDEMT= BIT1 ;"DEMTIM" BIT IN LPCSRB
LPGOER= BIT0 ;"GOERR" BIT IN LPCSRB
LPBSAD= 4 ;OFFSET TO LP20 DMA BUS ADDRESS REGISTER
LPBCTR= 6 ;OFFSET TO LP20 DMA BYTE COUNTER REGISTER
LPPCTR= 10 ;OFFSET TO LP20 PAGE COUNTER REGISTER
LPRAMD= 12 ;OFFSET TO LP20 RAM DATA REGISTER
LPCBUF= 14 ;OFFSET TO LP20 CHAR BUFFER REGISTER (BYTE)
LPCCTR= 15 ;OFFSET TO LP20 COLUMN COUNTER REGISTER (BYTE)
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 54
PRM11 PAL[KL,SYS] Page 42.1 TC11 (DECTAPE) DEVICE REGISTERS AND BIT DEFINITIONS, 4-JUNE-75
LPCKSM= 16 ;OFFSET TO LP20 CHECKSUM REGISTER (BYTE)
LPPDAT= 17 ;OFFSET TO LP20 PRINTER DATA REGISTER (BYTE)
;.NLIST
.ENDC ;LPASB
;.LIST
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 55
PRM11 PAL[KL,SYS] Page 43 EN11 - PDP11/ETHERNET INTERFACE MODULE DEVICE REGISTERS ETC.
.SBTTL EN11 - PDP11/ETHERNET INTERFACE MODULE DEVICE REGISTERS ETC.
160020 ENOWC=160020 ; ETHERNET DEVICE OUTPUT WORD COUNT REG
160022 ENOWA=ENOWC+2 ; ETHERNET DEVICE OUTPUT WORD ADDR REG
160024 ENOCSR=ENOWC+4 ; ETHERNET DEVICE OUTPUT CONTROL STATUS REG
160026 ENODLY=ENOWC+6 ; ETHERNET DEVICE OUTPUT DELAY REG
;
160030 ENIWC=ENOWC+10 ; ETHERNET DEVICE INPUT WORD COUNT REG
160032 ENIWA=ENOWC+12 ; ETHERNET DEVICE INPUT WORD ADDRESS REG
160034 ENICSR=ENOWC+14 ; ETHERNET DEVICE INPUT CONTROL STATUS REG
160036 ENIADR=ENOWC+16 ; ETHERNET DEVICE HARDWARE ADDRESS REGISTER
;
000454 EN0BSZ=300. ; MAXIMUM SIZE OF ETHERNET INPUT BUFFER
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 56
PRM11 PAL[KL,SYS] Page 44 EN11 - PDP11/ETHERNET INTERFACE MODULE DEVICE REGISTERS ETC.
;DSKDMP BOOTSTRAP PARAMETERS
000620 BOOTWD==400.
002260 BOOTSZ==BOOTWD*3 ;NUMBER OF PDP-11 WORDS THAT BOOT OCCUPIES
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 57
KLDCP PAL[KL,SYS] Page 5.1 EN11 - PDP11/ETHERNET INTERFACE MODULE DEVICE REGISTERS ETC.
;Starting vectors & other constant code
.INSRT BEG11.PAL
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 58
BEG11 PAL[KL,SYS] Page 1 EN11 - PDP11/ETHERNET INTERFACE MODULE DEVICE REGISTERS ETC.
COMMENT ⊗ VALID 00002 PAGES
C REC PAGE DESCRIPTION
C00001 00001
C00002 00002 .SBTTL *BEGIN* PROGRAM CONTROL, 4-AUG-75
C00005 ENDMK
C⊗;
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 59
BEG11 PAL[KL,SYS] Page 2 *BEGIN* PROGRAM CONTROL, 4-AUG-75
.SBTTL *BEGIN* PROGRAM CONTROL, 4-AUG-75
100000 .=PRGSRT
;STARTING ADDRESS
100000 000137 114566 START: JMP @#$SBRINT ;NORMAL START (near maximum violence)
100004 000137 100602 $CNTLC: JMP @#$$CNTLC ;CTRL/C (a normal, not too violent restart)
100010 000137 114520 $ILOAD: JMP $$ILOAD ;INITIAL LOAD (redo checksum, then $SBRINT)
100014 000137 100332 $CONSL: JMP $$CONSL ;RETURN TO CONSOLE (pussycat)
;DEVICE ADDRESS PARAMETERS
100020 177560 $TKS: 177560 ;TTY KBD STATUS
100022 177562 $TKB: 177562 ;TTY KBD BUFFER
100024 177564 $TPS: 177564 ;TTY PRINTER STATUS
100026 177566 $TPB: 177566 ;TTY PRINTER BUFFER
.IF DF LPASB
$LPS: 177514 ;LP11 - LINE PRINTER STATUS
$LPB: 177516 ;LP11 - LINE PRINTER BUFFER
.ENDC
.IF DF TELASB
100030 175610 $FSTKS: 175610 ;FIELD SERVICE KLINIK INPUT STATUS
100032 175612 $FSTKB: 175612 ;FIELD SERVICE KLINIK INPUT BUFFER
100034 175614 $FSTPS: 175614 ;FIELD SERVICE KLINIK OUTPUT STATUS
100036 175616 $FSTPB: 175616 ;FIELD SERVICE KLINIK OUTPUT BUFFER
100040 000300 $FSTRV: 300 ;FIELD SERVICE TELETYPE RECEIVE VECTOR
100042 000304 $FSTTV: 304 ;FIELD SERVICE TELETYPE TRANSMIT VECTOR
.ENDC
.IF DF CLKASB
100044 160770 $CLKMD: 160770 ;MONTH/DAY
100046 160772 $CLKHM: 160772 ;HOURS/MINUTES
100050 160774 $CLKSEC:160774 ;YEAR/SECONDS
100052 160776 $CLKST: 160776 ;STATUS
100054 000170 $CLKTV: 170 ;TRAP VECTOR
.ENDC
.IF DF MONASB
$CMTKS: 175620 ;COMM INPUT STATUS
$CMTKB: 175622 ;COMM INPUT BUFFER
$CMTPS: 175624 ;COMM OUTPUT STATUS
$CMTPB: 175626 ;COMM OUTPUT BUFFER
.ENDC
.LIF DF RPASB
RPRH11: 176700 ;RH11 CONTROLLER ADDRESS
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 60
BEG11 PAL[KL,SYS] Page 2.1 *BEGIN* PROGRAM CONTROL, 4-AUG-75
;PDP-10 KL10 PARAMETERS
100056 777777 TENMO: -1 ;PDP-10 MINUS ONE
100060 777777 -1
100062 000017 17
100064 000440 TDIAG: $STD ;DIAGNOSTIC START ADDRESS
100066 000000 0
100070 000441 TDDT: $DDT ;DDT START ADDRESS
100072 000000 0
100074 000442 TLDR: $STL ;LOADER START ADDRESS
100076 000000 0
100100 000443 TMON: $STM ;MONITOR START ADDRESS
100102 000000 0
100104 060650 EMTIMO: 25000. ;EM/DM TIMEOUT COUNT
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 61
KLDCP PAL[KL,SYS] Page 5.2 *BEGIN* PROGRAM CONTROL, 4-AUG-75
;console code
.INSRT CONS11.PAL
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 62
CONS11 PAL[KL,SYS] Page 1 *BEGIN* PROGRAM CONTROL, 4-AUG-75
COMMENT ⊗ VALID 00061 PAGES
C REC PAGE DESCRIPTION
C00001 00001
C00006 00002 .SBTTL CONSOLE PACKAGE FOR KL10/11 INTERFACE, 9-SEPT-75
C00008 00003 $KONSL: TTIBRK GET BREAK CHAR FROM LAST OPERATION
C00010 00004 $$CONSL:CLR RPTFLG Start here from 100014
C00013 00005 3$: MOVB #40,$KDCEN+1 MAKE SINGLE LETTER COMMAND
C00015 00006 .SBTTL CONSOLE DISPATCH TABLE
C00023 00007 DISPATCH TABLE
C00028 00008 .SBTTL DIAGNOSIC CONSOLE UTILITY COMMAND PROCESS
C00030 00009 .SBTTL CONSOLE COMMAND REPEAT CONTROL
C00031 00010 .SBTTL PROGRAM CONSOLE COMMAND PROCESS
C00033 00011 PROGRAM INDIRECT CCL FILE PROCESS
C00035 00012 .SBTTL DIAGNOSTIC FUNCTIONS
C00037 00013 DIAGNOSTIC READ AND PRINT
C00038 00014 .DFDP: DFLEGAL FUNCTION LEGAL ?
C00039 00015 .AR: TTICHR
C00040 00016 .BR: TTICHR
C00042 00017 .PC: TTICHR
C00043 00018 .VM: DFLEGAL FUNCTION LEGAL ?
C00044 00019 PCF COMMAND - PRINT PC FLAGS
C00047 00020 .FE: TTITRM
C00048 00021 PRINT PRIORITY INTERRUPT FUNCTIONS
C00050 00022 PRINT ALL - C-RAM & REGISTERS
C00052 00023 .SBTTL PDP-10 START/STOP FUNCTIONS
C00054 00024 START PDP-10 DDT
C00057 00025 PULSE THE E-BOX CLOCK
C00059 00026 EXECUTE A PDP10 INSTRUCTION.
C00060 00027 PNTCPU PRINT C-RAM & REGISTERS
C00062 00028 SELECT CLOCK SOURCE
C00063 00029 PROCESSOR PARITY DISABLE
C00064 00030 PROCESSOR PARITY ENABLE
C00066 00031 MICRO-CODE SYNC MARK ROUTINES
C00067 00032 MICRO-CODE TIME FIELD CHANGE ROUTINE
C00068 00033 CACHE ENABLE
C00070 00034 AC BLOCK SELECTION
C00073 00035 START PDP10 AT ADDRESS SPECIFIED AS LOWER 18 BITS OF 36-BIT ARGUMENT.
C00077 00036 .SBTTL PDP-10 DEPOSIT AND EXAMINE CONSOLE FUNCTIONS
C00079 00037 MEMORY ZERO
C00081 00038 .EXM: MOV #.DPXAD,R5
C00083 00039 .SBTTL CONSOLE IDLE RUN LOOP
C00086 00040 MONITOR TELETYPE CHARACTER INPUT -- MTTYIN MTTYI0 MTTYI1 C10DN1 MTTYER MTTYOC MTTYO MTTYP MTTYX MTTYC MTTYCF $MC
MTTYS C10DN2
C00089 00041 .SBTTL PDP-10 RUN TIME SUPPORT TENCMD CMD10T C10DON
C00091 00042 C10DNX, TENCERR
C00093 00043 C10TO, C10TI
C00095 00044 Switch functions. C10SW
C00098 00045 C10PRG C10PT C10P2 C10P1 C10X1 C10P3 C10P4 C10P5 C10KAS KASET
C00100 00046 Clock operations. C10CLK
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 63
CONS11 PAL[KL,SYS] Page 1.1 *BEGIN* PROGRAM CONTROL, 4-AUG-75
C00110 00047 PDP-10 SWITCH REGISTER
C00112 00048 .SBTTL PDP-10 PROGRAM COMMAND
C00114 00049 "DIAMON" FILE READ
C00116 00050 .SBTTL PDP-11 CONSOLE FUNCTIONS
C00117 00051 EXAMINE ELEVEN AT ADDRESS GIVEN
C00120 00052 DEPOSIT ELEVEN DATA
C00121 00053 .SBTTL KL10 MONITOR & ACT10 COMMAND ROUTINES
C00123 00054 .IF DF MONASB
C00125 00055 SRT11X: MOV PGOADR,SEADR
C00127 00056 .IF DF MONASB
C00129 00057 ADRERR: PMSG <?ADR>
C00130 00058 .SBTTL LINE PRINTER SELECTION ROUTINE
C00134 00059 .SBTTL CONSOLE TELETYPE FUNCTIONS
C00135 00060 .SBTTL KLINIK FIELD SERVICE REMOTE DIAGNOSTICS ENABLE
C00137 00061 FSRLEN FSRINT FSINT1 FSXIT FSINT2 FSXITC FSINTA FSINT3 FSINT4 FSXITA FSIN4R FSIN4D FSIN4E FSIN4W HANGUP HANGU1
FSHNG1 FSINT5 FSIN5A FSTINT FSTYP FSTYP1 FSTYP2 FSCLKR FSMSG FSLOSM PWORD PWLEN $HU
C00145 ENDMK
C⊗;
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 64
CONS11 PAL[KL,SYS] Page 2 CONSOLE PACKAGE FOR KL10/11 INTERFACE, 9-SEPT-75
.SBTTL CONSOLE PACKAGE FOR KL10/11 INTERFACE, 9-SEPT-75
100106 012737 000140 177776 CONSL: MOV #CPUPR,PS ;SET CPU PRIORITY.
100114 012706 157776 MOV #STACK,SP ;RESET STACK
100120 012700 122752 MOV #$STUF,R0 ;SETUP FOR STACK UNDERFLOW
100124 010016 MOV R0,(SP)
1$: PUSH R0
100130 010637 147756 MOV SP,$KONSP
100134 013706 147756 KONSL: MOV $KONSP,SP ;RESET STACK POINTER
100140 012737 104000 147444 .IIF NE EPTREL, MOV #PHYS!PRTOFF,$TADSP ;DEFAULT ADDR MODE FOR EXDEP
100146 104217 TTPINI ;INIT TTY POINTERS
100150 005037 147760 CLR DDTFLG
100154 005037 147644 CLR IFILEF
100160 005037 150742 CLR HLPPNT
100164 005037 152234 CLR PCMDFLG
100170 104043 PFORCE ;ALL OUTPUT TO TTY
100172 004737 115172 JSR PC,$CKSUM ;COMPUTE CHECKSUM OF "KLDCP"
100176 020037 157314 CMP R0,$ILDSUM ;DOES IT MATCH AS LOADED ?
100202 001404 BEQ 2$ ;YES, OK !!!!
100204 010037 157314 MOV R0,$ILDSUM ;NO, ONLY REPORT CHANGES
PMSG <?"KLDCP" CKSUM\>
100210 104025 $PMSG
100212 145030 $$CLIT
100214 005737 147640 2$: TST JFILEF
100220 001044 BNE $$CONSL
PMSG <CMD:\>
100222 104025 $PMSG
100224 145050 $$CLIT
100226 000441 BR $$CONSL
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 65
CONS11 PAL[KL,SYS] Page 3 CONSOLE PACKAGE FOR KL10/11 INTERFACE, 9-SEPT-75
100230 104015 $KONSL: TTIBRK ;GET BREAK CHAR FROM LAST OPERATION
100232 103454 BCS $KONS1 ;NO DATA
100234 122700 000054 CMPB #',,R0 ;WAS LAST BREAK A COMMA ?
100240 001506 BEQ $RPT ;BR IF YES, CONTINUE STRING PROCESS
100242 122700 000040 CMPB #' ,R0 ;WAS LAST BREAK A SPACE ?
100246 001503 BEQ $RPT ;YES, CONTINUE STRING PROCESS
100250 122700 000011 CMPB #TAB,R0 ;WAS LAST BREAK A TAB ?
100254 001500 BEQ $RPT ;YES, CONTINUE STRING PROCESS
100256 005700 TST R0
100260 001411 BEQ 11$ ;NULL, EOL
100262 022700 000012 CMP #LF,R0 ;IS IT LF ?
100266 001406 BEQ 11$ ;YES
100270 022700 000033 CMP #ALTMOD,R0
100274 001403 BEQ 11$ ;IS IT ALTMODE ?
100276 022700 000015 CMP #CR,R0 ;IS IT A CR ?
100302 001011 BNE 2$ ;NO, INVALID TERMINATION
100304 005737 147752 11$: TST RPTFLG ;PRESENTLY DOING A REPEAT ?
100310 001425 BEQ $KONS1 ;BR IF NO
100312 004737 116544 JSR PC,$PTTYC ;CHECK OPERATOR INTERRUPT
100316 012737 150522 150736 1$: MOV #$INBUF+2,$INPTC ;REPEAT, REDO COMMAND
100324 000454 BR $RPT
100326 000137 100574 2$: JMP $CMDER
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 66
CONS11 PAL[KL,SYS] Page 4 CONSOLE PACKAGE FOR KL10/11 INTERFACE, 9-SEPT-75
100332 005037 147752 $$CONSL:CLR RPTFLG ;Start here from 100014
100336 005037 151144 CLR DVDIRF ;CLEAR DEVICE DIRECTORY FLAG
;IN CASE OF START AT 100000+X FROM CONSOLE
.IF DF TELASB
100342 032777 000004 777460 BIT #DLRTS,@$FSTKS
100350 001002 BNE 1$ ;RTS STILL SET, ASSUME OK
100352 004737 114050 JSR PC,HANGU1 ;RTS OFF, MUST HAVE BEEN RANDOM INIT, SO HANGUP
1$:
.ENDC ;DF TELASB
.LIF DF SAILVR
100356 052737 000100 177546 BIS #100,KWLKS ;SET CLOCK INTERRUPT ENABLE
100364 005737 152234 $KONS1: TST PCMDFLG ;DOING PROGRAM COMMAND ?
100370 001402 BEQ 1$ ;NO
100372 000137 101526 JMP PCMDE ;YES, RETURN TO PROGRAM
100376 005737 147644 1$: TST IFILEF ;PROCESSING INDIRECT FILE ?
100402 001402 BEQ 2$ ;NO
100404 000137 101666 JMP IFILIN ;YES, GET CHARS FROM STORAGE
100410 005737 147640 2$: TST JFILEF ;DOING DOUBLE INDIRECT ?
100414 100002 BPL $KONS2 ;NO
100416 000137 101730 JMP JFILIN ;YES, GET CHARS FROM STORAGE
100422 010637 147756 $KONS2: MOV SP,$KONSP ;SAVE STACK POINTER
100426 104043 1$: PFORCE
100430 104214 PNTCI
100432 000076 '>
PMSG <. ←>
100434 104025 $PMSG
100436 145056 $$CLIT
100440 104003 2$: RUNLP ;RUN LOOP &/OR READ IN A TTY LINE
100442 103005 BCC $RPT ;RESPONSE, GO PROCESS
100444 022737 150520 150740 CMP #$INBUF,$INPTR ;ANYTHING BEEN TYPED ?
100452 001365 BNE 1$ ;YES, REPROMPT
100454 000771 BR 2$
100456 005037 147754 $RPT: CLR ALLFLG ;CLEAR ALL PRINT FLAG
100462 104016 TTISDL ;READ ONE CHARACTER
100464 103043 BCC $CMDER ;...NUMBER, ILLEGAL
100466 122700 000073 1$: CMPB #';,R0
100472 001717 BEQ $$CONSL ;SEMICOLON, LOCAL COPY ONLY
100474 122700 000056 CMPB #'.,R0
100500 001766 BEQ $RPT ;DOT, IGNORE
100502 110037 101140 MOVB R0,$KDCEN ;PLACE IN END OF DECODER
100506 104005 TTICHR ;READ SECOND CHARACTER
100510 103725 BCS $KONS1 ;EVEN 1 CHAR CMDS ARE 2 CHAR MIN.
100512 122700 000012 CMPB #12,R0 ;IF THIS CHAR IS A LINE FEED
100516 001722 BEQ $KONS1 ;..1ST CHAR MUST HAVE BEEN CR, IGNORE
100520 122700 000015 CMPB #15,R0 ;IF THIS CHAR A CR
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 67
CONS11 PAL[KL,SYS] Page 4.1 CONSOLE PACKAGE FOR KL10/11 INTERFACE, 9-SEPT-75
100524 001417 BEQ 3$ ;THIS IS A SINGLE LETTER COMMAND
100526 122700 000033 CMPB #33,R0 ;IF ALTMODE
100532 001414 BEQ 3$ ; DITTO
100534 110037 101141 MOVB R0,$KDCEN+1 ;PLACE SECOND IN END OF DECODER
;THE COMMAND PORTION OF THE INPUT STRING IS READY TO BE DECODED
100540 013700 101140 4$: MOV $KDCEN,R0 ;COMMAND TO R0
100544 012701 100674 MOV #$KDCRE,R1 ;ADDRESS OF LIST TO R1
100550 020021 2$: CMP R0,(R1)+ ;TEST FOR COMMAND
100552 001376 BNE 2$ ;NOT FOUND YET
100554 005037 101140 CLR $KDCEN
.LIF DF MONASB
CLR ENQFLG
100560 000171 000244 JMP @$DISPH-$KDCRE-2(R1) ;EXIT TO SELECTED SUBROUTINE
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 68
CONS11 PAL[KL,SYS] Page 5 CONSOLE PACKAGE FOR KL10/11 INTERFACE, 9-SEPT-75
100564 112737 000040 101141 3$: MOVB #40,$KDCEN+1 ;MAKE SINGLE LETTER COMMAND
100572 000762 BR 4$ ;LETTER & SPACE FOR LOOKUP
100574 104214 $CMDER: PNTCI
100576 000077 '?
100600 000411 BR $$$CC
100602 005037 151140 $$CNTLC:CLR DIAFLG
100606 105037 147710 CLRB TENRUN ;CLEAR PDP-10 RUNNING FLAG
100612 005737 152234 TST PCMDFLG ;DOING PROGRAM COMMAND ?
100616 001002 BNE $$$CC ;YES
100620 005037 147634 CLR PRGRUN ;CLEAR PROGRAM RUNNING FLAG
100624 104055 $$$CC: SETFLG
100626 150004 $TTLKF
100630 005737 157310 TST DEVTYP ;IN ACT10 MODE ?
100634 100000 BPL 1$ ;NO
.IF DF MONASB
TST ENQFLG ;DOING APT10 COMMAND ?
BEQ 1$ ;NO
COMCLR ;ACT10, CLEAR COMM, THEN TO CONSL
.ENDC
1$: PUSH $FORCE ;SAVE FORCED PRINTING FLAG
100642 104043 PFORCE
100644 104031 PCRLF ;FORCE PRINT ERROR
POP $FORCE ;RESTORE
100652 005737 152234 TST PCMDFLG ;DOING PROGRAM COMMAND ?
100656 001402 BEQ 2$ ;NO
100660 000137 101546 JMP PCMDE1 ;YES, TAKE ERROR RETURN
100664 005037 147640 2$: CLR JFILEF ;CLEAR DOUBLE INDIRECT FLAG
100670 000137 100134 JMP KONSL
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 69
CONS11 PAL[KL,SYS] Page 6 CONSOLE DISPATCH TABLE
.SBTTL CONSOLE DISPATCH TABLE
100674 122
100675 040
$KDCRE: .ASCII /R / ;REPEAT OPERATOR
100676 106
100677 130
.ASCII /FX/ ;DIAGNOSTIC FUNCTION EXECUTE
100700 106
100701 127
.ASCII /FW/ ;DIAGNOSTIC FUNCTION WRITE
100702 106
100703 122
.ASCII /FR/ ;DIAGNOSTIC FUNCTION READ
100704 106
100705 123
.ASCII /FS/ ;DIAGNOSTIC FUNCTION SYNC
100706 104
100707 101
.ASCII /DA/ ;DIAGNOSTIC DEPOSIT INTO AR
100710 105
100711 130
.ASCII /EX/ ;PDP-10 INSTRUCTION EXECUTE
100712 115
100713 122
.ASCII /MR/ ;MASTER RESET
;PDP-10 EXAMINE/DEPOSIT FUNCTIONS
100714 105
100715 115
.ASCII /EM/ ;EXAMINE 10 AT ADR AND PRINT
100716 104
100717 115
.ASCII /DM/ ;DEPOSIT DATA IN 10 ADDRESS
100720 105
100721 116
.ASCII /EN/ ;EXAMINE AND PRINT NEXT 10 ADDRESSES
100722 104
100723 116
.ASCII /DN/ ;DEPOSIT DATA INTO NEXT 10 ADDRESSES
100724 115
100725 132
.ASCII /MZ/ ;MEMORY ZERO
;START/STOP FUNCTIONS
100726 123
100727 120
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 70
CONS11 PAL[KL,SYS] Page 6.1 CONSOLE DISPATCH TABLE
.ASCII /SP/ ;STOP 10, CLEAR RUN FLOP
100730 122
100731 116
.ASCII /RN/ ;START 10, SET RUN FLOP
100732 123
100733 111
.ASCII /SI/ ;SINGLE INSTRUCTION,PUSH CONTINUE
100734 120
100735 114
.ASCII /PL/ ;PULSE CLOCK
100736 102
100737 125
.ASCII /BU/ ;BURST CLOCK
100740 123
100741 115
.ASCII /SM/ ;START MICRO CODE,SUPPORT EXAMINE/DEPOSIT
100742 123
100743 124
.ASCII /ST/ ;START AT 10 ADDRESS
100744 123
100745 127
.ASCII /SW/ ;PDP-10 SWITCHES
100746 101
100747 103
.ASCII /AC/ ;"AC BLK" SELECTION
100750 115
100751 103
.ASCII /MC/ ;PDP-10 MONITOR CONTINUE
.LIF DF %%EOP
.ASCII /EP/ ;SET EOP INTERVAL
;PDP-11 FUNCTIONS
100752 123
100753 105
.ASCII /SE/ ;START 11 AT ADR
100754 105
100755 105
.ASCII /EE/ ;EXAMINE 11 AT ADR AND PRINT
100756 104
100757 105
.ASCII /DE/ ;DEPOSIT DATA IN 11 ADDRESS
100760 105
100761 102
.ASCII /EB/ ;EXAMINE 11 BYTE
100762 104
100763 102
.ASCII /DB/ ;DEPOSIT 11 BYTE
100764 132
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 71
CONS11 PAL[KL,SYS] Page 6.2 CONSOLE DISPATCH TABLE
100765 105
.ASCII /ZE/ ;ZERO ELEVEN
;RAM FUNCTIONS
100766 105
100767 103
.ASCII /EC/ ;EXAMINE C-RAM AT ADDRESS AND PRINT
100770 104
100771 103
.ASCII /DC/ ;DEPOSIT DATA INTO C-RAM ADDRESS
100772 122
100773 103
.ASCII /RC/ ;READ C-RAM, FR'S 140-141-142-143
100774 105
100775 104
.ASCII /ED/ ;EXAMINE D-RAM AT ADDRESS AND PRINT
100776 104
100777 104
.ASCII /DD/ ;[START DDT] OR DEPOSIT D-RAM
101000 115
101001 115
.ASCII /MM/ ;MICRO-CODE SYNC MARK
101002 115
101003 125
.ASCII /MU/ ;MICRO-CODE SYNC UNMARK
101004 115
101005 124
.ASCII /MT/ ;MICRO-CODE TIME CHANGE
;CLOCK OPERATIONS
101006 103
101007 123
.ASCII /CS/ ;CLOCK SOURCE
101010 103
101011 122
.ASCII /CR/ ;CLOCK RATE
;PROCESSOR PARITY FUNCTIONS
101012 120
101013 104
.ASCII /PD/ ;DISABLE PARITY STOP
101014 120
101015 105
.ASCII /PE/ ;ENABLE PARITY STOP
;INTERNAL E-BOX REGISTER READ FUNCTIONS
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 72
CONS11 PAL[KL,SYS] Page 6.3 CONSOLE DISPATCH TABLE
101016 101
101017 122
.ASCII /AR/ ;READ & PRINT AR REGISTER
101020 102
101021 122
.ASCII /BR/ ;READ & PRINT BR REGISTER
101022 115
101023 121
.ASCII /MQ/ ;READ & PRINT MQ REGISTER
101024 106
101025 115
.ASCII /FM/ ;READ & PRINT FM REGISTER
101026 101
101027 104
.ASCII /AD/ ;READ & PRINT ADDER
101030 120
101031 103
.ASCII /PC/ ;READ & PRINT PC
101032 126
101033 115
.ASCII /VM/ ;READ & PRINT VMA
101034 123
101035 103
.ASCII /SC/ ;READ & PRINT SC REGISTER
101036 106
101037 105
.ASCII /FE/ ;READ & PRINT FE REGISTER
101040 105
101041 122
.ASCII /ER/ ;READ & PRINT E-BUS REGISTER
101042 120
101043 111
.ASCII /PI/ ;READ & PRINT PI SYSTEM
101044 101
101045 114
.ASCII /AL/ ;PRINT ALL, C-RAM & REGISTERS
;CACHE OPERATIONS
101046 103
101047 105
.ASCII /CE/ ;CACHE ENABLE
101050 103
101051 111
.ASCII /CI/ ;CACHE INVALIDATE
101052 103
101053 106
.ASCII /CF/ ;CACHE FLUSH
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 73
CONS11 PAL[KL,SYS] Page 6.4 CONSOLE DISPATCH TABLE
;REPEAT CONTROL
101054 122
101055 120
.ASCII /RP/ ;REPEAT & PRINT OR RP04 SELECT
101056 124
101057 104
.ASCII /TD/ ;TIME DELAY
;CONSOLE (TTY) CONTROL FUNCTION
101060 124
101061 120
.ASCII /TP/ ;SET TTY PAGE LENGTH
101062 124
101063 127
.ASCII /TW/ ;SET TTY PAGE WIDTH
101064 124
101065 106
.ASCII /TF/ ;SET TTY FILL COUNT
.LIF DF UTLASB
.ASCII /TT/ ;SWITCH TO REMOTE TELETYPE OPERATION
.LIF DF LPASB
.ASCII /LP/ ;LINE PRINTER SELECTION
.IF NDF TELASB
.ASCII /KL/ ;KLINIK SELECTION
.IFF
101066 110
101067 125
.ASCII /HU/ ;HANGUP
.ENDC
;KL10 MONITOR (PROGRAM & ACT10) COMMANDS
.IF DF MONASB
.ASCII /B / ;BOOT
.ASCII /LI/ ;LOGIN
.ENDC
101070 110
101071 040
.ASCII /H / ;HELP
101072 120
101073 040
.ASCII /P / ;PROGRAM
101074 114
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 74
CONS11 PAL[KL,SYS] Page 6.5 CONSOLE DISPATCH TABLE
101075 124
.ASCII /LT/ ;LOAD TEN
101076 114
101077 105
.ASCII /LE/ ;LOAD ELEVEN
101100 114
101101 122
.ASCII /LR/ ;LOAD RAM
101102 114
101103 102
.ASCII /LB/ ;LOAD ELEVEN BINARY
.LIF DF BOOASB
101104 114
101105 104
.ASCII /LD/ ;LOAD DSKDMP BOOTSTRAP LOADER
101106 126
101107 040
.ASCII /V / ;VERFIY PROGRAM
101110 103
101111 040
.ASCII /C / ;COMMENT/CORRECTIVE ACTION
.IF DF MONASB
.ASCII /S / ;SCRIPT
.ASCII /M / ;MASTER SCRIPT
.ASCII /LO/ ;LOGOUT
.ASCII /GS/ ;GENERATE SCRIPT
.ENDC
101112 107
101113 117
.ASCII /GO/ ;GO START PROGRAM
;;;; .ASCII /CD/ ;PDP-11 CORE DUMP
.IF DF RPASB
.IF DF UTLASB
.ASCII /TA/ ;ACT10 TO RP04 TRANSFER
.ASCII /WF/ ;DECTAPE TO RP04 WRITE
.ENDC
.ASCII /RE/ ;'RENM' RENAME RP04 FILE
.ENDC
.IF DF MONASB
.ASCII /T / ;TIME
.ASCII /BT/ ;BOOT TEN
.ASCII /AT/ ;SWITCH TO ACT10 MODE
.ENDC
101114 104
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 75
CONS11 PAL[KL,SYS] Page 6.6 CONSOLE DISPATCH TABLE
101115 124
.ASCII /DT/ ;SWITCH TO DECTAPE MODE, SELECT UNIT
.LIF DF RXASB
.ASCII /RX/ ;SWITCH TO FLOPPY MODE, SELECT UNIT
101116 104
101117 111
.ASCII /DI/ ;DIRECTORY, DECTAPE/RP04/FLOPPY
.IF DF BPTASB
.ASCII /BP/ ;BREAKPOINT TRAP LAYER
.ASCII /BC/ ;BREAKPOINT CONTINUE
.ASCII /RG/ ;TYPE OUT BREAK STUFF
.ASCII /RB/ ;REMOVE BREAKPOINTS
.ENDC
101120 110
101121 103
.ASCII /HC/ ;ERROR HALT CONTINUE
101122 122
101123 111
.ASCII /RI/ ;REINITIALIZE SYSTEM
101124 111
101125 040
.ASCII /I / ;INDIRECT COMMAND FILE PROCESS
101126 112
101127 040
.ASCII /J / ;DOUBLE INDIRECT COMMAND FILE
101130 112
101131 103
.ASCII /JC/ ;"J" FILE CONTINUE
.LIF DF BOOASB
101132 104
101133 123
.ASCII /DS/ ;LOAD DSKDMP BOOTSTRAP INTO 10 MEM AND START
101134 126
101135 102
.ASCII /VB/ ;COMPLEMENT VERBOSE FLAG
101136 113
101137 101
.ASCII /KA/ ;ENABLE KASIM
101140 000000 $KDCEN: 0 ;ERROR TRAP FOR NONEXISTANT COMMANDS
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 76
CONS11 PAL[KL,SYS] Page 7 CONSOLE DISPATCH TABLE
;DISPATCH TABLE
101142 101410 $DISPH: .RPT ;REPEAT OPERATION
101144 102014 .DFXCT ;DIAGNOSTIC FUNCTION EXECUTE
101146 102032 .DFWRT ; " " WRITE
101150 102112 .DFRD ; " " READ
101152 102070 .FS ; " " SYNC
101154 102610 .DA ; " DEPOSIT INTO AR
101156 104432 .XCT ;EXECUTE 10 INSTRUCTION
101160 102602 .MRESET ;MASTER RESET
101162 106622 .EXM ;EXAMINE 10
101164 106276 .DP ;DEPOSIT 10
101166 107004 .EXMNX ;EXAMINE NEXT 10
101170 106346 .DPNX ;DEPOSIT NEXT 10
101172 106450 .MZ ;MEMORY ZERO
101174 103750 $SP ;STOP 10
101176 104000 $RN ;RUN 10
101200 104220 $SI ;SINGLE INSTRUCT 10
101202 104320 .PL ;PULSE 10
101204 104602 .BU ;BURST CLOCK
101206 104364 .SM ;START MACHINE
101210 105776 $ST ;START 10
101212 110300 $SW ;SWITCHES 10
101214 105544 .AC ;"AC BLK" SELECTION
101216 107364 $MC ;MONITOR CONTINUE
.LIF DF %%EOP
.EP ;SET EOP INTERVAL
101220 112402 .SE ;START ELEVEN
101222 112450 .EE ;EXAMINE ELEVEN
101224 112652 .DE ;DEPOSIT ELEVEN
101226 112456 .EB ;EXAMINE 11 BYTE
101230 112660 .DB ;DEPOSIT 11 BYTE
101232 112632 .ZE ;ZERO ELEVEN
101234 126242 $EC ;EXAMINE C←RAM
101236 127734 $DC ;DEPOSIT C-RAM
101240 126656 $RC ;READ C-RAM
101242 127472 $ED ;EXAMINE D←RAM
101244 104112 $DDTX ;[START DDT] OR DEPOSIT D←RAM
101246 105240 .MM ;MICRO-CODE MARK
101250 105232 .MU ;MICRO-CODE UNMARK
101252 105312 .MT ;MICRO-CODE TIME CHANGE
101254 104632 .CS ;SELECT CLOCK SOURCE
101256 104742 .CR ;SELECT CLOCK RATE
101260 104774 .PD ;PROCESSOR PARITY DISABLE
101262 105102 .PE ;PROCESSOR PARITY ENABLE
101264 102400 .AR ;READ REGISTERS
101266 102512 .BR
101270 102304 .MQ
101272 102320 .FM
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 77
CONS11 PAL[KL,SYS] Page 7.1 CONSOLE DISPATCH TABLE
101274 102442 .AD
101276 102626 .PC
101300 102732 .VM
101302 103316 .SC
101304 103302 .FE
101306 102554 .ERG
101310 103414 .PI ;READ & PRINT PI SYSTEM
101312 103550 .ALL ;PRINT ALL
101314 105400 .CE ;CACHE ENABLE
101316 104374 .CI ;CACHE INVALIDATE
101320 104412 .CF ;CACHE FLUSH
101322 101422 .RPTP ;REPEAT & PRINT
101324 122576 .TD ;TIME DELAY
101326 113404 $TP ;SET TTY PAGE LENGTH
101330 113412 $TW ;SET TTY PAGE WIDTH
101332 113434 $TF ;SET TTY FILL PARAMETER
.LIF DF UTLASB
$TT ;SWITCH TO REMOTE TTY
.LIF DF LPASB
$LPT ;LINE PRINTER SELECTION
.IF NDF TELASB
.KLINIK ;KLINIK SELECTION
.IFF
101334 114476 $HU ;HANG UP
.ENDC
;KL10 MONITOR (PROGRAM & ACT10) COMMANDS
.IF DF MONASB
$BOOT ;BOOT SYSTEM
$LOGIN ;LOG IN
.ENDC
101336 113132 $HELP ;HELP
101340 113036 $PROG ;LOAD PROGRAM
101342 112766 $LDT ;LOAD TEN
101344 112776 $LDE ;LOAD ELEVEN
101346 113006 $LDR ;LOAD RAM
101350 113016 $LDB ;LOAD ELEVEN BINARY
.LIF DF BOOASB
101352 113026 $LDD ;LOAD DSKDMP BOOT
101354 112752 $VERIFY ;VERIFY PROGRAM
101356 113344 $COMNT ;COMMENT
.IF DF MONASB
$SCRPT ;SCRIPT REQUEST
$MSCP ;MASTER SCRIPT REQUEST
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 78
CONS11 PAL[KL,SYS] Page 7.2 CONSOLE DISPATCH TABLE
$LOGO ;LOG OUT
$GSCP ;GENERATE SCRIPT
.ENDC
101360 113212 $GO ;PROGRAM GO
;;;; $CD ;PDP-11 CORE DUMP
.IF DF RPASB
.IF DF UTLASB
$TA ;ACT10 TO RP04 TRANSFER
$WF ;DECTAPE TO RP04 WRITE FILE
.ENDC
$RE ;'RENM' RP04 RENAME FILE
.ENDC
.IF DF MONASB
$TIME ;TIME
$BOOTT ;BOOT PDP-10
$AT ;SELECT ACT-10 MODE
.ENDC
101362 113150 $DT ;SELECT DECTAPE MODE & UNIT
.LIF DF RXASB
$RX ;SELECT FLOPPY MODE & UNIT
101364 133724 $DI ;DIRECTORY, DECTAPE/RP04/FLOPPY
.IF DF BPTASB
.BP ;BREAKPOINT INSERTION
.BC ;BREAKPOINT CONTINUE
.RG ;PRINT SAVED REGISTERS
.RB ;REMOVE BREAKPOINTS
.ENDC
101366 115464 .HC ;HALT CONTINUE
101370 113374 .RI ;REINITIALIZE CONSOLE
101372 113104 $IFILE ;INDIRECT FILE
101374 113064 $JFILE ;DOUBLE INDIRECT FILE
101376 113232 $JC ;J FILE CONTINUE
.LIF DF BOOASB
101400 135472 $DS ;LOAD AND START DSKDMP BOOTSTRAP PROGRAM
101402 106404 $VB ;COMPLEMENT VERBOSE TYPEOUT
101404 106440 $KA ;ENABLE KASIM
101406 100574 $CMDER ;NO SUCH COMMAND
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 79
CONS11 PAL[KL,SYS] Page 8 DIAGNOSIC CONSOLE UTILITY COMMAND PROCESS
.SBTTL DIAGNOSIC CONSOLE UTILITY COMMAND PROCESS
.IF DF UTLASB
;UTILITY PROGRAM CHECK
$KLUCK: CMP PID,PIDU ;UTILITY PROGRAM IN CORE ?
BNE 1$
CMP PID+2,PIDU+2
BNE 1$
CMP PDVER,#DECVER ;PROPER VERSION ?
BNE 1$
RTS PC ;OK
1$: PMSG <PLEASE LOAD "KLDCPU.A11" FIRST>
JMP $CNTLC
PIDU: .RAD50 /KLDCPU/
;TRANSFER FROM APT10 DISPATCH
$TA: JSR PC,$KLUCK ;UTILITY IN CORE ?
JMP @TAPT ;YES
;WRITE FILE FROM DTA/FLOPPY DISPATCH
$WF: JSR PC,$KLUCK ;UTILITY IN CORE ?
JMP @WFILE ;YES
;REMOTE TELETYPE COMMUNICATIONS DISPATCH
$TT: JSR PC,$KLUCK ;UTILITY IN CORE ?
JMP @REMOTE ;YES
;RP04 DISK DIRECTORY DISPATCH
.IF DR RPASB
$RPDIR: JSR PC,$KLUCK ;UTILITY IN CORE ?
JMP @DSKDIR ;YES
.ENDC
.ENDC
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 80
CONS11 PAL[KL,SYS] Page 9 CONSOLE COMMAND REPEAT CONTROL
.SBTTL CONSOLE COMMAND REPEAT CONTROL
101410 104055 .RPT: SETFLG
101412 147752 RPTFLG ;SET REPEAT FLAG
101414 104044 .RPTX: PNORML
101416 000137 100456 JMP $RPT
101422 104016 .RPTP: TTISDL
101424 103005 BCC 1$ ;NUMBER
101426 104144 TTBACK
101430 012737 177400 147752 MOV #177400,RPTFLG ;SET REPEAT & PRINT
101436 000766 BR .RPTX
101440 000137 100574 1$: JMP $RP ;MUST BE RP04 SELECTION
100574 .IIF NDF RPASB,$RP==$CMDER
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 81
CONS11 PAL[KL,SYS] Page 10 PROGRAM CONSOLE COMMAND PROCESS
.SBTTL PROGRAM CONSOLE COMMAND PROCESS
101444 104055 $PRGNPT:SETFLG ;PROGRAM COMMAND, NO PRINT
101446 152232 PCMDNF
101450 000402 BR $PRGXX
101452 005037 152232 $PRGCMD:CLR PCMDNF
101456 104055 $PRGXX: SETFLG
101460 152234 PCMDFLG ;SET PROGRAM COMMAND FLAG
101462 005700 TST R0
101464 001411 BEQ 2$ ;USE CURRENT INPUT BUFFER, R0=0
101466 022700 777777 CMP #-1,R0
101472 001004 BNE 3$
101474 012700 150274 MOV #$OUTBF,R0 ;USE OUTPUT BUFFER, R0 = -1
101500 010037 150514 MOV R0,$OUTPT
101504 004737 101606 3$: JSR PC,$PCMDX ;TRANSFER COMMAND TO INPUT BUFFER
101510 012737 150520 150736 2$: MOV #$INBUF,$INPTC ;SET PICKUP POINTER
101516 010637 147650 MOV SP,$$SVSP ;SAVE STACK POINTER
101522 000137 100456 JMP $RPT ;PROCESS COMMAND
101526 013706 147650 PCMDE: MOV $$SVSP,SP ;RESTORE STACK POINTER
101532 005037 152234 CLR PCMDFLG
101536 005037 152232 CLR PCMDNF
.LIF DF MONASB
CLR ENQFLG
EXIT
101542 000137 124062 JMP $EXIT
101546 013706 147650 PCMDE1: MOV $$SVSP,SP
101552 005037 152234 PCMDE3: CLR PCMDFLG ;ERROR, C-BIT SET RETURN
101556 005037 152232 CLR PCMDNF
101562 005037 150742 CLR HLPPNT
EXITERR
101566 000137 124034 JMP $EXITE
101572 013706 147650 PCMDE2: MOV $$SVSP,SP
101576 052766 000010 000014 BIS #NBIT,14(SP) ;CONTROL C DURING TYPEOUT
101604 000762 BR PCMDE3 ;NBIT & CBIT SET RETURN
101606 012701 150520 $PCMDX: MOV #$INBUF,R1 ;MOVE COMMAND TO INPUT BUFFER
101612 $DIASX=.
101612 112021 1$: MOVB (R0)+,(R1)+ ;TRANSFER CHARS
101614 001376 BNE 1$ ;TILL NULL
101616 005301 DEC R1
101620 112721 000015 MOVB #CR,(R1)+
101624 112721 000012 MOVB #LF,(R1)+
101630 010137 150740 MOV R1,$INPTR ;SAVE EOL POINTER
101634 000207 RTS PC
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 82
CONS11 PAL[KL,SYS] Page 11 PROGRAM CONSOLE COMMAND PROCESS
;PROGRAM INDIRECT CCL FILE PROCESS
101636 013701 147642 $TTICCL:MOV IFINP,R1 ;XFER CHARS INTO INPUT BUFFER
101642 105711 TSTB (R1) ;FIRST CHAR A NULL ?
101644 001406 BEQ 1$ ;YES, FINISHED
101646 004737 101772 JSR PC,IJFILX
101652 010137 147642 MOV R1,IFINP ;RESAVE POINTER
EXIT
101656 000137 124062 JMP $EXIT
1$: EXITERR ;FINISHED, C-BIT SET RETURN
101662 000137 124034 JMP $EXITE
;INDIRECT COMMAND FILE PROCESS
101666 013701 147642 IFILIN: MOV IFINP,R1 ;XFER CHARS INTO INPUT BUFFER
101672 105711 TSTB (R1) ;FIRST CHAR A NULL ?
101674 001413 BEQ IFILX1 ;YES, FINISHED
101676 004737 101772 JSR PC,IJFILX
101702 010137 147642 MOV R1,IFINP ;RESAVE STORAGE POINTER
101706 005737 147640 TST JFILEF ;DON'T PRINT "I" IF UNDER "J"
101712 001002 BNE 3$
101714 IFILX=.
101714 104025 $PMSG ;PRINT COMMAND LINE
101716 150520 $INBUF
101720 000137 100456 3$: JMP $RPT ;GO PROCESS
101724 000137 100106 IFILX1: JMP CONSL ;FINISHED
;DOUBLE INDIRECT COMMAND FILE PROCESS
101730 005737 147634 JFILIN: TST PRGRUN ;PROGRAM PRESENTLY RUNNING ?
101734 001402 BEQ 3$ ;NO
101736 000137 100422 JMP $KONS2 ;YES, WAIT TILL IT'S DONE
101742 013701 147636 3$: MOV JFINP,R1 ;XFER CHARS INTO INPUT BUFFER
101746 105711 TSTB (R1) ;FIRST CHAR A NULL ?
101750 001405 BEQ 2$ ;YES, FINISHED
101752 004737 101772 JSR PC,IJFILX
101756 010137 147636 MOV R1,JFINP ;RESAVE STORAGE POINTER
101762 000754 BR IFILX
101764 005037 147640 2$: CLR JFILEF
101770 000755 BR IFILX1
101772 012700 150520 IJFILX: MOV #$INBUF,R0
101776 010037 150736 MOV R0,$INPTC
102002 112120 1$: MOVB (R1)+,(R0)+
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 83
CONS11 PAL[KL,SYS] Page 11.1 PROGRAM CONSOLE COMMAND PROCESS
102004 001376 BNE 1$
102006 010037 150740 MOV R0,$INPTR
102012 000207 RTS PC
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 84
CONS11 PAL[KL,SYS] Page 12 DIAGNOSTIC FUNCTIONS
.SBTTL DIAGNOSTIC FUNCTIONS
;DIAGNOSTIC FUNCTION EXECUTE
102014 104226 .DFXCT: DFLEGAL ;FUNCTION LEGAL ?
102016 104017 TTISDO ;GET FUNCTION
102020 020027 000037 CMP R0,#037 ;FUNCTION VALID ?
102024 003026 BGT $DFERR ;FX IS 000 TO 037
102026 104114 DFXCT ;DF EXECUTE
102030 000415 BR .DFX ;RETURN TO CONSOLE
;DIAGNOSTIC FUNCTION WRITE
102032 104226 .DFWRT: DFLEGAL ;FUNCTION LEGAL ?
102034 104017 TTISDO ;GET FUNCTION
102036 020027 000040 CMP R0,#040
102042 002417 BLT $DFERR
102044 020027 000077 CMP R0,#077
102050 003014 BGT $DFERR ;FW IS 040 TO 077
102052 010002 MOV R0,R2 ;SAVE FUNCTION
102054 104020 TTIS36 ;GET DATA
102056 010001 MOV R0,R1 ;PUT ADR OF 36BITS IN R1
102060 010200 MOV R2,R0 ;FUNCTION IN R0
102062 104120 DFWRT ;DIAGNOSTIC FUNCTION WRITE
102064 000137 100230 .DFX: JMP $KONSL
;DIAGNOSTIC FUNCTION SYNC, GENERATES PULSE AT "A36E1"
102070 104226 .FS: DFLEGAL ;FUNCTION LEGAL ?
102072 104022 TTITRM
102074 104115 DFXCTT
102076 000074 74 ;SYNC IS FUNCTION EXECUTE 74
102100 000771 BR .DFX
$DFERR: PMSG <?FUNCTION ERR>
102102 104025 $PMSG
102104 145062 $$CLIT
102106 000137 100004 JMP $CNTLC
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 85
CONS11 PAL[KL,SYS] Page 13 DIAGNOSTIC FUNCTIONS
;DIAGNOSTIC READ AND PRINT
102112 104226 .DFRD: DFLEGAL ;FUNCTION LEGAL ?
102114 005003 CLR R3
102116 104017 TTISDO ;GET FUNCTION
102120 010002 MOV R0,R2
102122 104015 TTIBRK
102124 103766 BCS $DFERR
102126 122700 000054 CMPB #COMMA,R0 ;IF BREAK IS A COMMA, MULTIPLE DFRD
102132 001003 BNE 1$
102134 005203 INC R3
102136 104010 TTCOCT
102140 010004 MOV R0,R4 ;SAVE LAST DFRD
102142 105737 147752 1$: TSTB RPTFLG
102146 001003 BNE 2$
102150 010200 MOV R2,R0
102152 104036 PNTOCS
102154 104033 PSLASH
102156 010200 2$: MOV R2,R0
102160 001406 BEQ 21$ ;FR 0 USED TO READ E-BUS
102162 020027 000100 CMP R0,#100
102166 002745 BLT $DFERR
102170 020027 000177 CMP R0,#177
102174 003342 BGT $DFERR ;FR IS 100 TO 177
102176 012701 147730 21$: MOV #.DFRDA,R1
102202 104117 DFRDMV
102204 105737 147752 TSTB RPTFLG
102210 001002 BNE 3$
102212 010100 MOV R1,R0
102214 104134 PNT36B ;PRINT IN BINARY
102216 005703 3$: TST R3
102220 001405 BEQ 4$
102222 104031 PCRLF
102224 020204 CMP R2,R4
102226 103002 BHIS 4$
102230 005202 INC R2
102232 000743 BR 1$
102234 000412 4$: BR ALLEXT
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 86
CONS11 PAL[KL,SYS] Page 14 DIAGNOSTIC FUNCTIONS
102236 104226 .DFDP: DFLEGAL ;FUNCTION LEGAL ?
102240 012701 147730 MOV #.DFRDA,R1
102244 104117 DFRDMV ;READ THE E-BUS
102246 105737 147752 TSTB RPTFLG
102252 001304 BNE .DFX
102254 012700 147730 .DFDPC: MOV #.DFRDA,R0
102260 104042 PNT36 ;PRINT IT OUT
102262 005737 147754 ALLEXT: TST ALLFLG ;DOING ALL ?
102266 001005 BNE 1$ ;YES
102270 105737 147752 TSTB RPTFLG ;DOING A REPEAT ?
102274 001001 BNE 2$ ;YES
102276 ALLEX1=.
102276 104031 PCRLF
102300 000671 2$: BR .DFX
102302 000207 1$: RTS PC ;ALL, CONTINUE
102304 104022 .MQ: TTITRM
102306 $ALLMQ=.
PMSGR <MQ />
102306 104026 $PMSGR
102310 145100 $$CLIT
102312 012700 000122 1$: MOV #DPMQ,R0
102316 000747 BR .DFDP
102320 104226 .FM: DFLEGAL ;FUNCTION LEGAL ?
102322 104022 TTITRM
102324 $ALLFM=.
102324 105737 147752 TSTB RPTFLG
102330 001016 BNE 1$
102332 104214 PNTCI
102334 046506 "FM
102336 104140 DFRDT ;READ FM ADDRESS
102340 000114 DPFMA
102342 017700 054756 MOV @.DAT2,R0
102346 104053 SHIFTR
102350 000005 5
102352 042700 177760 BIC #177760,R0
102356 104047 PNTODT
102360 000002 2
102362 104214 PNTCI
102364 000057 '/
102366 012700 000123 1$: MOV #DPFM,R0
102372 000721 BR .DFDP
102374 000137 102102 $DPERR: JMP $DFERR
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 87
CONS11 PAL[KL,SYS] Page 15 DIAGNOSTIC FUNCTIONS
102400 104005 .AR: TTICHR
102402 103774 BCS $DPERR
102404 122700 000130 CMPB #'X,R0 ;IS COMMAND 3 LETTERS ?
102410 001406 BEQ 1$ ;BR IF 3RD LETTER IS X
102412 104023 TTBTRM
102414 $ALLAR=.
PMSGR <AR />
102414 104026 $PMSGR
102416 145105 $$CLIT
102420 012700 000120 2$: MOV #DPAR,R0
102424 000704 BR .DFDP ;READ AND PRINT AR
102426 104022 1$: TTITRM
102430 $ALARX=.
PMSGR <ARX/>
102430 104026 $PMSGR
102432 145112 $$CLIT
102434 012700 000125 3$: MOV #DPARX,R0
102440 000676 BR .DFDP
102442 104005 .AD: TTICHR
102444 103753 BCS $DPERR
102446 122700 000130 CMPB #'X,R0 ;IS COMMAND 3 LETTERS ?
102452 001411 BEQ 1$ ;BR IF 3RD LETTER IS X
102454 122700 000102 CMPB #'B,R0
102460 001552 BEQ .ADB ;ADB, PRINT ADDRESS BREAK
102462 104023 TTBTRM
102464 $ALLAD=.
PMSGR <AD />
102464 104026 $PMSGR
102466 145117 $$CLIT
102470 012700 000127 2$: MOV #DPAD,R0
102474 000660 BR .DFDP ;READ AND PRINT AD
102476 104022 1$: TTITRM
102500 $ALADX=.
PMSGR <ADX/>
102500 104026 $PMSGR
102502 145124 $$CLIT
102504 012700 000126 3$: MOV #DPADX,R0
102510 000652 BR .DFDP ;READ AND PRINT ADX
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 88
CONS11 PAL[KL,SYS] Page 16 DIAGNOSTIC FUNCTIONS
102512 104005 .BR: TTICHR
102514 103727 BCS $DPERR
102516 122700 000130 CMPB #'X,R0 ;IS COMMAND 3 LETTERS ?
102522 001406 BEQ 1$ ;BR IF 3RD LETTER IS X
102524 104023 TTBTRM
102526 $ALLBR=.
PMSGR <BR />
102526 104026 $PMSGR
102530 145131 $$CLIT
102532 012700 000121 2$: MOV #DPBR,R0
102536 000637 BR .DFDP ;READ AND PRINT BR
102540 104022 1$: TTITRM
102542 $ALBRX=.
PMSGR <BRX/>
102542 104026 $PMSGR
102544 145136 $$CLIT
102546 012700 000124 3$: MOV #DPBRX,R0
102552 000631 BR .DFDP ;READ AND PRINT THE BRX
102554 104005 .ERG: TTICHR
102556 103504 BCS $DPER1
102560 122700 000107 CMPB #'G,R0
102564 001101 BNE $DPER1
102566 104022 TTITRM
$ALLEB: PMSGR <ERG/>
102570 104026 $PMSGR
102572 145143 $$CLIT
102574 012700 000167 MOV #DPERG,R0
102600 000616 BR .DFDP ;READ & PRINT EBUS REGISTER
;MASTER RESET
102602 104022 .MRESET:TTITRM
102604 104076 MRESET
102606 000405 BR .DAX
;DEPOSIT INTO AR
102610 104226 .DA: DFLEGAL ;FUNCTION LEGAL ?
102612 104020 TTIS36 ;GET 36 BIT AR DATA
102614 010001 MOV R0,R1 ;ADR OF 36 BITS TO R1
102616 004537 143734 JSR R5,WIRAR1 ;CALL IR/AR WRITE ROUTINE
102622 000137 100230 .DAX: JMP $KONSL
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 89
CONS11 PAL[KL,SYS] Page 17 DIAGNOSTIC FUNCTIONS
102626 104005 .PC: TTICHR
102630 103457 BCS $DPER1
102632 122700 000106 CMPB #'F,R0
102636 001471 BEQ .PCF ;"PCF" COMMAND
102640 104023 TTBTRM
102642 $ALLPC=.
PMSG <PC />
102642 104025 $PMSG
102644 145150 $$CLIT
102646 005737 147710 TST TENRUN ;PDP-10 PRESENTLY RUNNING ?
102652 001417 BEQ 1$ ;NO, GO AHEAD THEN
102654 104115 DFXCTT
102656 000010 CLRRUN ;CLEAR RUN
102660 104056 TDELAY ;WAIT FOR HALT LOOP
102662 104115 DFXCTT
102664 000000 STPCLK ;STOP CLOCK
102666 104123 DFPC ;READ PC
PUSH R0
102672 104115 DFXCTT
102674 000001 STRCLK ;START CLOCK
102676 104115 DFXCTT
102700 000011 SETRUN ;SET RUN
102702 104115 DFXCTT
102704 000012 CONBUT ;SET CONTINUE
POP R0
102710 000401 BR PCVMAP ;GO PRINT
102712 104123 1$: DFPC
PCVMAP:
102714 104137 PNTADR
102716 005737 147754 TST ALLFLG
102722 001002 BNE 1$
102724 000137 102276 JMP ALLEX1 ;RETURN TO CONSOLE
102730 000207 1$: RTS PC ;ALL, RETURN TO ROUTINE
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 90
CONS11 PAL[KL,SYS] Page 18 DIAGNOSTIC FUNCTIONS
102732 104226 .VM: DFLEGAL ;FUNCTION LEGAL ?
102734 104005 TTICHR
102736 103414 BCS $DPER1
102740 122700 000101 CMPB #'A,R0
102744 001404 BEQ 1$
102746 122700 000110 CMPB #'H,R0
102752 001410 BEQ .VMH
102754 000405 BR $DPER1
102756 104022 1$: TTITRM
102760 $ALVMA=.
PMSG <VMA/>
102760 104025 $PMSG
102762 145155 $$CLIT
102764 104124 DFVMA
102766 000752 BR PCVMAP
102770 000137 102102 $DPER1: JMP $DFERR
102774 104022 .VMH: TTITRM
102776 $ALVMH=.
PMSG <VMH/>
102776 104025 $PMSG
103000 145162 $$CLIT
103002 104150 DFVMAH
103004 000743 BR PCVMAP
103006 104226 .ADB: DFLEGAL ;FUNCTION LEGAL ?
103010 104022 TTITRM
PMSG <ADB/>
103012 104025 $PMSG
103014 145167 $$CLIT
103016 104125 DFADB
103020 000735 BR PCVMAP
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 91
CONS11 PAL[KL,SYS] Page 19 DIAGNOSTIC FUNCTIONS
;PCF COMMAND - PRINT PC FLAGS
103022 104022 .PCF: TTITRM
103024 $ALPCF=.
103024 005737 147710 TST TENRUN ;PDP-10 PRESENTLY RUNNING ?
103030 001416 BEQ 1$ ;NO, GO AHEAD THEN
103032 104115 DFXCTT
103034 000010 CLRRUN ;CLEAR RUN
103036 104056 TDELAY ;WAIT FOR HALT LOOP
103040 104115 DFXCTT
103042 000000 STPCLK ;STOP CLOCK
103044 004737 103106 JSR PC,PCF ;READ AND PRINT PC FLAGS
103050 104115 DFXCTT
103052 000001 STRCLK ;START CLOCK
103054 104115 DFXCTT
103056 000011 SETRUN ;SET RUN
103060 104115 DFXCTT
103062 000012 CONBUT ;SET CONTINUE
103064 000402 BR 2$
103066 004737 103106 1$: JSR PC,PCF ;READ AND PRINT PC FLAGS
103072 005737 147754 2$: TST ALLFLG
103076 001002 BNE 3$
103100 000137 102276 JMP ALLEX1 ;PRINT CRLF AND RETURN TO KONSL
103104 000207 3$: RTS PC ;ALL, RETURN TO ROUTINE
PCF: PMSG <PCF/ >
103106 104025 $PMSG
103110 145174 $$CLIT
103112 012705 103214 MOV #PCFTBL,R5
103116 005004 CLR R4 ;R4 ZERO IF THIS IS FIRST FROB TYPED
103120 112500 1$: MOVB (R5)+,R0 ;GET DIAG FUNC FOR NEXT BIT
103122 001433 BEQ 9$ ;BR IF END OF TABLE
103124 104116 DFRD ;GET BIT INTO DTE REG
103126 017702 054174 MOV @.DAT1,R2 ;BITS 0-3
103132 017701 054166 MOV @.DAT2,R1 ;BITS 4-19
000004 .REPT 4
ASL R1
ROL R2
.ENDR ;BITS 0-7 (4.9-4.2) RIGHT ALIGNED IN R2
103136 006301 ASL R1
103140 006102 ROL R2
103142 006301 ASL R1
103144 006102 ROL R2
103146 006301 ASL R1
103150 006102 ROL R2
103152 006301 ASL R1
103154 006102 ROL R2
103156 112501 MOVB (R5)+,R1 ;GET MASK FOR BIT OF INTEREST
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 92
CONS11 PAL[KL,SYS] Page 19.1 DIAGNOSTIC FUNCTIONS
103160 100002 BPL 2$
103162 005102 COM R2 ;BIT BACKWARDS IN HARDWARE
103164 005401 NEG R1
103166 012500 2$: MOV (R5)+,R0 ;GET POINTER TO BIT NAME STRING
103170 030102 BIT R1,R2
103172 001406 BEQ 3$
103174 005704 TST R4 ;IF NOT FIRST, PUT A COMMA, SPACE
103176 001402 BEQ 4$
103200 104214 PNTCI
103202 020054 ",
103204 104024 4$: PNTAL ;BIT IS ON, GIVE NAME
103206 005204 INC R4
103210 000743 3$: BR 1$ ;LOOP BACK FOR NEXT BIT
103212 000207 9$: RTS PC
;PC FLAGS TABLE
;FIRST BYTE IS DIAG FCN, SECOND IS MASK FOR BIT (NEGATIVE => BIT COMPLEMENTED)
;SECOND WORD -> ASCIZ BIT NAME (Negative means more than 177)
.MACRO PCFTE NAME,DFN,MASK
.LIT $$ZZQ,<.ASCIZ\NAME\>
.BYTE DFN,MASK
.WORD $$ZZQ
.ENDM
PCFTBL: PCFTE OV,131,40
.LIT $$ZZQ,<.ASCIZ\OV\>
103214 $$CLC=.
145202 .=$$CLIT
145202 .EVEN
145202 $$ZZQ=.
.IIF B <.ASCIZ\OV\>,0
145202 117
145203 126
145204 000
.IIF NB <.ASCIZ\OV\>,.ASCIZ\OV\
145206 .EVEN
145206 $$CLIT=.
103214 .=$$CLC
103214 131
103215 040 .BYTE 131,40
103216 145202 .WORD $$ZZQ
PCFTE CRY0,131,20
.LIT $$ZZQ,<.ASCIZ\CRY0\>
103220 $$CLC=.
145206 .=$$CLIT
145206 .EVEN
145206 $$ZZQ=.
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 93
CONS11 PAL[KL,SYS] Page 19.2 DIAGNOSTIC FUNCTIONS
.IIF B <.ASCIZ\CRY0\>,0
145206 103
145207 122
145210 131
145211 060
145212 000
.IIF NB <.ASCIZ\CRY0\>,.ASCIZ\CRY0\
145214 .EVEN
145214 $$CLIT=.
103220 .=$$CLC
103220 131
103221 020 .BYTE 131,20
103222 145206 .WORD $$ZZQ
PCFTE CRY1,131,10
.LIT $$ZZQ,<.ASCIZ\CRY1\>
103224 $$CLC=.
145214 .=$$CLIT
145214 .EVEN
145214 $$ZZQ=.
.IIF B <.ASCIZ\CRY1\>,0
145214 103
145215 122
145216 131
145217 061
145220 000
.IIF NB <.ASCIZ\CRY1\>,.ASCIZ\CRY1\
145222 .EVEN
145222 $$CLIT=.
103224 .=$$CLC
103224 131
103225 010 .BYTE 131,10
103226 145214 .WORD $$ZZQ
PCFTE FOV,132,20
.LIT $$ZZQ,<.ASCIZ\FOV\>
103230 $$CLC=.
145222 .=$$CLIT
145222 .EVEN
145222 $$ZZQ=.
.IIF B <.ASCIZ\FOV\>,0
145222 106
145223 117
145224 126
145225 000
.IIF NB <.ASCIZ\FOV\>,.ASCIZ\FOV\
145226 .EVEN
145226 $$CLIT=.
103230 .=$$CLC
103230 132
103231 020 .BYTE 132,20
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 94
CONS11 PAL[KL,SYS] Page 19.3 DIAGNOSTIC FUNCTIONS
103232 145222 .WORD $$ZZQ
PCFTE FPD,130,2
.LIT $$ZZQ,<.ASCIZ\FPD\>
103234 $$CLC=.
145226 .=$$CLIT
145226 .EVEN
145226 $$ZZQ=.
.IIF B <.ASCIZ\FPD\>,0
145226 106
145227 120
145230 104
145231 000
.IIF NB <.ASCIZ\FPD\>,.ASCIZ\FPD\
145232 .EVEN
145232 $$CLIT=.
103234 .=$$CLC
103234 130
103235 002 .BYTE 130,2
103236 145226 .WORD $$ZZQ
PCFTE USER,134,340
.LIT $$ZZQ,<.ASCIZ\USER\>
103240 $$CLC=.
145232 .=$$CLIT
145232 .EVEN
145232 $$ZZQ=.
.IIF B <.ASCIZ\USER\>,0
145232 125
145233 123
145234 105
145235 122
145236 000
.IIF NB <.ASCIZ\USER\>,.ASCIZ\USER\
145240 .EVEN
145240 $$CLIT=.
103240 .=$$CLC
103240 134
103241 340 .BYTE 134,340
103242 145232 .WORD $$ZZQ
PCFTE IOTUSR,136,4
.LIT $$ZZQ,<.ASCIZ\IOTUSR\>
103244 $$CLC=.
145240 .=$$CLIT
145240 .EVEN
145240 $$ZZQ=.
.IIF B <.ASCIZ\IOTUSR\>,0
145240 111
145241 117
145242 124
145243 125
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 95
CONS11 PAL[KL,SYS] Page 19.4 DIAGNOSTIC FUNCTIONS
145244 123
145245 122
145246 000
.IIF NB <.ASCIZ\IOTUSR\>,.ASCIZ\IOTUSR\
145250 .EVEN
145250 $$CLIT=.
103244 .=$$CLC
103244 136
103245 004 .BYTE 136,4
103246 145240 .WORD $$ZZQ
PCFTE PUBLIC,135,20
.LIT $$ZZQ,<.ASCIZ\PUBLIC\>
103250 $$CLC=.
145250 .=$$CLIT
145250 .EVEN
145250 $$ZZQ=.
.IIF B <.ASCIZ\PUBLIC\>,0
145250 120
145251 125
145252 102
145253 114
145254 111
145255 103
145256 000
.IIF NB <.ASCIZ\PUBLIC\>,.ASCIZ\PUBLIC\
145260 .EVEN
145260 $$CLIT=.
103250 .=$$CLC
103250 135
103251 020 .BYTE 135,20
103252 145250 .WORD $$ZZQ
PCFTE ADB INH,137,40
.LIT $$ZZQ,<.ASCIZ\ADB INH\>
103254 $$CLC=.
145260 .=$$CLIT
145260 .EVEN
145260 $$ZZQ=.
.IIF B <.ASCIZ\ADB INH\>,0
145260 101
145261 104
145262 102
145263 040
145264 111
145265 116
145266 110
145267 000
.IIF NB <.ASCIZ\ADB INH\>,.ASCIZ\ADB INH\
145270 .EVEN
145270 $$CLIT=.
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 96
CONS11 PAL[KL,SYS] Page 19.5 DIAGNOSTIC FUNCTIONS
103254 .=$$CLC
103254 137
103255 040 .BYTE 137,40
103256 145260 .WORD $$ZZQ
PCFTE TRP 2,130,40
.LIT $$ZZQ,<.ASCIZ\TRP 2\>
103260 $$CLC=.
145270 .=$$CLIT
145270 .EVEN
145270 $$ZZQ=.
.IIF B <.ASCIZ\TRP 2\>,0
145270 124
145271 122
145272 120
145273 040
145274 062
145275 000
.IIF NB <.ASCIZ\TRP 2\>,.ASCIZ\TRP 2\
145276 .EVEN
145276 $$CLIT=.
103260 .=$$CLC
103260 130
103261 040 .BYTE 130,40
103262 145270 .WORD $$ZZQ
PCFTE TRP 1,130,4
.LIT $$ZZQ,<.ASCIZ\TRP 1\>
103264 $$CLC=.
145276 .=$$CLIT
145276 .EVEN
145276 $$ZZQ=.
.IIF B <.ASCIZ\TRP 1\>,0
145276 124
145277 122
145300 120
145301 040
145302 061
145303 000
.IIF NB <.ASCIZ\TRP 1\>,.ASCIZ\TRP 1\
145304 .EVEN
145304 $$CLIT=.
103264 .=$$CLC
103264 130
103265 004 .BYTE 130,4
103266 145276 .WORD $$ZZQ
PCFTE FXU,132,10
.LIT $$ZZQ,<.ASCIZ\FXU\>
103270 $$CLC=.
145304 .=$$CLIT
145304 .EVEN
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 97
CONS11 PAL[KL,SYS] Page 19.6 DIAGNOSTIC FUNCTIONS
145304 $$ZZQ=.
.IIF B <.ASCIZ\FXU\>,0
145304 106
145305 130
145306 125
145307 000
.IIF NB <.ASCIZ\FXU\>,.ASCIZ\FXU\
145310 .EVEN
145310 $$CLIT=.
103270 .=$$CLC
103270 132
103271 010 .BYTE 132,10
103272 145304 .WORD $$ZZQ
PCFTE DIV,131,2
.LIT $$ZZQ,<.ASCIZ\DIV\>
103274 $$CLC=.
145310 .=$$CLIT
145310 .EVEN
145310 $$ZZQ=.
.IIF B <.ASCIZ\DIV\>,0
145310 104
145311 111
145312 126
145313 000
.IIF NB <.ASCIZ\DIV\>,.ASCIZ\DIV\
145314 .EVEN
145314 $$CLIT=.
103274 .=$$CLC
103274 131
103275 002 .BYTE 131,2
103276 145310 .WORD $$ZZQ
103300 000000 0
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 98
CONS11 PAL[KL,SYS] Page 20 DIAGNOSTIC FUNCTIONS
103302 104022 .FE: TTITRM
$ALLFE: PMSGR <FE/>
103304 104026 $PMSGR
103306 145314 $$CLIT
103310 012704 000132 MOV #DPFE,R4
103314 000405 BR FESCP
103316 104022 .SC: TTITRM
$ALLSC: PMSGR <SC/>
103320 104026 $PMSGR
103322 145320 $$CLIT
103324 012704 000130 MOV #DPSC,R4
103330 104226 FESCP: DFLEGAL ;FUNCTION LEGAL ?
103332 010400 MOV R4,R0
103334 104116 DFRD
103336 017703 053762 MOV @.DAT2,R3 ;GET LO-ORDER 5 BITS
103342 000303 SWAB R3 ;FROM 7-11 OF DEXWDS
103344 042703 177740 BIC #177740,R3
103350 010400 MOV R4,R0
103352 005200 INC R0
103354 104116 DFRD
103356 017700 053742 MOV @.DAT2,R0 ;GET HI-ORDER 5 BITS
103362 104053 SHIFTR
103364 000003 3
103366 042700 176037 BIC #176037,R0
103372 050300 BIS R3,R0 ;COMBINE HI & LO ORDER BITS
103374 105737 147752 TSTB RPTFLG
103400 001003 BNE 1$
103402 104047 PNTODT
103404 000004 4
103406 104032 PSPACE
103410 000137 102262 1$: JMP ALLEXT
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 99
CONS11 PAL[KL,SYS] Page 21 DIAGNOSTIC FUNCTIONS
;PRINT PRIORITY INTERRUPT FUNCTIONS
103414 104226 .PI: DFLEGAL ;FUNCTION LEGAL ?
103416 104022 TTITRM
103420 $ALLPI=.
103420 004737 103452 JSR PC,$ALPIG ;PRINT PI GENS
103424 004737 103504 JSR PC,$ALPIH ;PRINT PI HOLDS
103430 004737 103536 JSR PC,$ALPIO ;PRINT PI ON'S
103434 005737 147754 TST ALLFLG
103440 001003 BNE 1$
103442 104031 PCRLF
103444 000137 100230 JMP $KONSL
103450 000207 1$: RTS PC ;ALL, RETURN TO ROUTINE
$ALPIG: PMSG <PI GEN/>
103452 104025 $PMSG
103454 145324 $$CLIT
103456 104140 DFRDT
103460 000101 READ1 ;READ PI GENS
;FR 101, BITS 11-17
103462 017700 053636 $ALPIY: MOV @.DAT2,R0
103466 104053 SHIFTR
103470 000002 2
103472 042700 177600 $ALPIX: BIC #177600,R0 ;DATA IS ONLY 7 BITS
103476 104047 PNTODT
103500 000003 3
103502 000207 RTS PC
$ALPIH: PMSG < PI HOLD/>
103504 104025 $PMSG
103506 145334 $$CLIT
103510 104140 DFRDT
103512 000100 READ0 ;READ PI HOLDS
103514 017700 053604 MOV @.DAT2,R0 ;FR 100, BITS 03-09
103520 017701 053602 MOV @.DAT1,R1
103524 006001 ROR R1
103526 006000 ROR R0
103530 104053 SHIFTR
103532 000011 9.
103534 000756 BR $ALPIX
$ALPIO: PMSG < PI ON/>
103536 104025 $PMSG
103540 145346 $$CLIT
103542 104140 DFRDT
103544 000100 READ0 ;READ PI ONS
103546 000745 BR $ALPIY ;FR 100, BITS 11-17
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 100
CONS11 PAL[KL,SYS] Page 22 DIAGNOSTIC FUNCTIONS
;PRINT ALL - C-RAM & REGISTERS
103550 104005 .ALL: TTICHR
103552 103410 BCS 1$
103554 122700 000114 CMPB #'L,R0
103560 001005 BNE 1$
103562 104022 TTITRM
103564 104226 DFLEGAL ;FUNCTION LEGAL ?
103566 104132 PNTCPU
103570 000137 100230 JMP $KONSL
103574 000137 102102 1$: JMP $DFERR ;ERROR
103600 104055 $PNTCPU:SETFLG
103602 147754 ALLFLG ;SET ALL FLAG
PUSH RPTFLG
103610 005037 147752 CLR RPTFLG
103614 004737 126272 JSR PC,$ALLEC ;PRINT C-RAM
103620 004737 102414 JSR PC,$ALLAR ;PRINT AR
103624 004737 102526 JSR PC,$ALLBR ;PRINT BR
103630 004737 102464 JSR PC,$ALLAD ;PRINT ADDER
103634 004737 103320 JSR PC,$ALLSC ;PRINT SC
103640 004737 102642 JSR PC,$ALLPC ;PRINT PC
103644 104031 PCRLF
103646 004737 102430 JSR PC,$ALARX ;PRINT ARX
103652 004737 102542 JSR PC,$ALBRX ;PRINT BRX
103656 004737 102500 JSR PC,$ALADX ;PRINT ADX
103662 004737 103304 JSR PC,$ALLFE ;PRINT FE
103666 004737 102760 JSR PC,$ALVMA ;PRINT VMA
103672 104031 PCRLF
103674 004737 102306 JSR PC,$ALLMQ ;PRINT MQ
103700 004737 102324 JSR PC,$ALLFM ;PRINT FM
103704 004737 102570 JSR PC,$ALLEB ;PRINT EBUS REGISTER
103710 004737 102776 JSR PC,$ALVMH ;PRINT VMA HELD
103714 104031 PCRLF
103716 004737 103452 JSR PC,$ALPIG ;PRINT PI GENS
103722 004737 103504 JSR PC,$ALPIH ;PRINT PI HOLDS
103726 004737 103536 JSR PC,$ALPIO ;PRINT PI ON'S
POP RPTFLG
103736 104031 PCRLF
103740 005037 147754 CLR ALLFLG
EXIT
103744 000137 124062 JMP $EXIT
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 101
CONS11 PAL[KL,SYS] Page 23 PDP-10 START/STOP FUNCTIONS
.SBTTL PDP-10 START/STOP FUNCTIONS
;THESE REQUIRE STANDARD MICROCODE TO DO ANYTHING WORTHWHILE!
;STOP PDP-10, CLEAR RUN FLOP
103750 104022 $SP: TTITRM
103752 104077 TENSP ;STOP TEN
103754 103002 BCC 1$
103756 000137 104566 JMP .XCTER ;DID NOT STOP PROPERLY
103762 005037 147634 1$: CLR PRGRUN
PMSG <\KL10 STOPPED >
103766 104025 $PMSG
103770 145356 $$CLIT
103772 004737 107732 JSR PC,$ALSTA ;PRINT PC,VMA,PI,PCF AND A CRLF
103776 000443 BR $RNX ;HOPE ENOUGH DELAY BUILT IN
;CONTINUE PDP-10 FROM OLD PC. ASSUME CLOCK MAY BE OFF
104000 104022 $RN: TTITRM
104002 005037 157264 $RNN: CLR CLKPE ;CLEAR CLOCK PARITY ENABLES
104006 012702 000020 MOV #20,R2
104012 013701 157262 MOV PEBITS,R1 ;GET ENABLE BITS
104016 001410 BEQ 2$ ;NOT ENABLED
104020 030201 BIT R2,R1 ;AR/ARX PARITY ENABLED ?
104022 001403 BEQ 1$ ;NO
104024 052737 000002 157264 BIS #2,CLKPE ;YES, SET ENABLE BIT
104032 052737 000001 157264 1$: BIS #1,CLKPE ;SET CLOCK STOP ENABLE
104040 104141 2$: DFWRTT
104042 157264 CLKPE
104044 000047 LDCHK2 ;LOAD ENABLE FUNCTION REGISTER
104046 040201 3$: BIC R2,R1
104050 010137 157264 MOV R1,CLKPE ;SETUP FM,CRAM,DRAM, FS
104054 104141 DFWRTT
104056 157264 CLKPE
104060 000046 LDCHK1 ;LOAD CONDITION ENABLE REGISTER
104062 104115 DFXCTT ;GET CLOCK RUNNING
104064 000001 STRCLK
104066 104115 DFXCTT ;SET RUN AND LET 'ER GO
104070 000011 SETRUN
104072 104115 DFXCTT ;SET CONTINUE BUTTON
104074 000012 CONBUT
104076 104055 SETFLG
104100 147710 TENRUN ;SET TEN RUN FLAG
104102 104055 SETFLG
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 102
CONS11 PAL[KL,SYS] Page 23.1 PDP-10 START/STOP FUNCTIONS
104104 147634 PRGRUN ;SET PROGRAM RUNNING FLAG
104106 000137 100230 $RNX: JMP $KONSL
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 103
CONS11 PAL[KL,SYS] Page 24 PDP-10 START/STOP FUNCTIONS
;START PDP-10 DDT
104112 104016 $DDTX: TTISDL
104114 103402 BCS 1$ ;NON-NUMBER
104116 000137 127044 JMP $DD ;NUMBER, MUST BE FOR D-RAM
104122 122700 000124 1$: CMPB #'T,R0
104126 001402 BEQ 2$ ;"DDT", START PDP-10 AT "DDTSRT"
104130 000137 102102 JMP $DFERR
104134 104022 2$: TTITRM
104136 104226 DFLEGAL ;DON'T DO THIS IF ALREADY RUNNING
104140 013737 100070 157222 MOV TDDT,$$STJRS ;SETUP JRST INSTRUCTION
104146 113737 100072 157224 MOVB TDDT+2,$$STJRS+2
;CAN'T ENTER DDT WHILE IN USER MODE.
104154 104140 DFRDT
104156 000134 134
104160 032777 000002 053140 BIT #2,@.DAT1
104166 001004 BNE 3$ ;BRANCH IF IN EXEC MODE
PMSG <?Can't. KL10 in USER mode.>
104170 104025 $PMSG
104172 145375 $$CLIT
104174 000137 100004 JMP $CNTLC
104200 005037 150042 3$: CLR TENTTY
104204 012700 157222 MOV #$$STJRS,R0
104210 104101 EXCT ;EXECUTE JRST TO START DDT
104212 103273 BCC $RNN ;GO SAY -10 IS RUNNING
104214 000137 104566 $DDTER: JMP .XCTER ;OR BARF IF MICRO CODE IS HUNG
;SINGLE INSTRUCT PDP-10. ASSUME CLOCK IS RUNNING AND RUN IS SET
104220 104077 $SI: TENSP ;STOP TEN
104222 103774 BCS $DDTER ;DID NOT STOP PROPERLY
104224 005005 CLR R5
104226 104016 TTISDL
104230 103412 BCS 4$ ;NON-NUMBER
104232 104011 TTIDEC
104234 103401 BCS 2$ ;NO ARG, DO ONCE
104236 010005 MOV R0,R5
104240 104115 2$: DFXCTT ;PRESS CONTINUE PULSER
104242 000012 CONBUT
104244 104056 TDELAY ;SMALL TIME DELAY
104246 005305 DEC R5 ;COMPLETED REQUESTED INSTRUCTIONS ?
104250 003373 BGT 2$
104252 000137 100230 JMP $KONSL ;YES, RETURN TO CONSOLE
104256 122700 000120 4$: CMPB #'P,R0
104262 001366 BNE 2$
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 104
CONS11 PAL[KL,SYS] Page 24.1 PDP-10 START/STOP FUNCTIONS
104264 104022 5$: TTITRM ;"SIP",SINGLE INSTRUCT AND PRINT
104266 104115 DFXCTT ;STOP CLOCK
104270 000000 STPCLK
104272 000137 104466 JMP SIPNT ;REST SAME AS LAST OF "EXP"
;DIAGNOSTIC FUNCTION LEGALITY CHECK
104276 005737 147710 $DFLEGAL:TST TENRUN ;PDP-10 PRESENTLY RUNNING ?
104302 001002 BNE 1$ ;YES, OPERATION ILLEGAL, ABORT
EXIT
104304 000137 124062 JMP $EXIT
1$: PMSG <?KL10 RUNNING, TYPE "SP" FIRST>
104310 104025 $PMSG
104312 145430 $$CLIT
104314 000137 100624 JMP $$$CC
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 105
CONS11 PAL[KL,SYS] Page 25 PDP-10 START/STOP FUNCTIONS
;PULSE THE E-BOX CLOCK
104320 104226 .PL: DFLEGAL ;FUNCTION LEGAL ?
104322 005037 152236 CLR TENCLK ;TURN OFF CLOCK IF ON
104326 104016 TTISDL
104330 103404 BCS 1$ ;NO ARG, DO ONCE
104332 104011 TTIDEC
104334 103402 BCS 1$ ;DO ONCE ANYWAY
104336 010001 MOV R0,R1 ;SAVE PULSE COUNT
104340 000401 BR 2$
104342 005001 1$: CLR R1
104344 104135 2$: ECLOK
104346 103002 BCC 3$
104350 004137 141210 JSR R1,$ECTIM
104354 005301 3$: DEC R1 ;DONE REQUESTED CLOCKS ?
104356 003372 BGT 2$ ;NOT YET
104360 000137 100230 .PLX: JMP $KONSL
;START MICROCODE IDLE.
;SUPPORT EXAMINE, DEPOSIT, AND EXECUTE OPERATIONS.
104364 104022 .SM: TTITRM
104366 104100 SM ;DO THE EMT
104370 103476 BCS .XCTER
104372 000772 BR .PLX
;CACHE INVALIDATE
104374 012700 104420 .CI: MOV #$$CI,R0
104400 104022 .CIF: TTITRM
104402 104226 DFLEGAL ;FUNCTION LEGAL ?
104404 104101 EXCT
104406 103467 BCS .XCTER ;FAILED
104410 000763 BR .PLX ;OK, RETURN TO CONSOLE
;CACHE FLUSH
104412 012700 104425 .CF: MOV #$$CF,R0
104416 000770 BR .CIF
$$CI: IO10 DATAI,CCA,,0 ;INVALIDATE WITHOUT CORE UPDATE
000000 .IIF B ,I=0
.IIF NB ,I=
000000 .IIF B ,XR=0
.IIF NB ,XR=
000002 BLKO=2
000003 DATAO=3
000000 BLKI=0
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 106
CONS11 PAL[KL,SYS] Page 25.1 PDP-10 START/STOP FUNCTIONS
000001 DATAI=1
000004 CONO=4
000005 CONI=5
000006 CONSZ=6
000007 CONSO=7
000000 APR=0
000004 PI=4
000010 PAG=10
000014 CCA=14
000000 ADH=0
000000 ADL=0
.IRPC AD1,0
.IIF GE <ADL-10000>,ADH=ADL/10000
ADL=10*<ADL&7777>+AD1
.ENDM
770000 .IIF GE <ADL-10000>,ADH=ADL/10000
000000 ADL=10*<ADL&7777>+0
$$CF: IO10 BLKO,CCA,,0 ;SWEEP CACHE, VALIDATING CORE
000000 .IIF B ,I=0
.IIF NB ,I=
000000 .IIF B ,XR=0
.IIF NB ,XR=
000002 BLKO=2
000003 DATAO=3
000000 BLKI=0
000001 DATAI=1
000004 CONO=4
000005 CONI=5
000006 CONSZ=6
000007 CONSO=7
000000 APR=0
000004 PI=4
000010 PAG=10
000014 CCA=14
000000 ADH=0
000000 ADL=0
.IRPC AD1,0
.IIF GE <ADL-10000>,ADH=ADL/10000
ADL=10*<ADL&7777>+AD1
.ENDM
770000 .IIF GE <ADL-10000>,ADH=ADL/10000
000000 ADL=10*<ADL&7777>+0
104432 .EVEN
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 107
CONS11 PAL[KL,SYS] Page 26 PDP-10 START/STOP FUNCTIONS
;EXECUTE A PDP10 INSTRUCTION.
104432 104077 .XCT: TENSP ;STOP TEN
104434 103454 BCS .XCTER ;DID NOT STOP PROPERLY
104436 104016 TTISDL
104440 103404 BCS 1$ ;NON-NUMBER
104442 104020 TTIS36
104444 104101 EXCT
104446 103447 BCS .XCTER
104450 000433 BR .XCT2
104452 122700 000120 1$: CMPB #'P,R0 ;"EXP" = EXECUTE & PRINT
104456 001032 BNE .XCT1
104460 104020 TTIS36
104462 104102 LODAR ;LOAD INTO AR
104464 103440 BCS .XCTER
104466 SIPNT=.
104466 104044 PNORML
104470 104115 DFXCTT ;SET CONTINUE BUTTON
104472 000012 CONBUT
104474 104135 2$: ECLOK ;CLOCK TO GET STARTED
104476 103002 BCC 3$
104500 004137 141210 JSR R1,$ECTIM
104504 032777 001000 052636 3$: BIT #HALTLP,@.DIAG1
104512 001370 BNE 2$ ;TILL WE LEAVE HALT LOOP
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 108
CONS11 PAL[KL,SYS] Page 27 PDP-10 START/STOP FUNCTIONS
104514 104132 PNTCPU ;PRINT C-RAM & REGISTERS
104516 104135 4$: ECLOK ;CLOCK
104520 103002 BCC 5$
104522 004137 141210 JSR R1,$ECTIM
104526 104132 5$: PNTCPU ;& PRINT TILL BACK TO HALT LOOP
104530 032777 001000 052612 BIT #HALTLP,@.DIAG1
104536 001767 BEQ 4$
104540 000137 100230 .XCT2: JMP $KONSL
104544 122700 000124 .XCT1: CMPB #'T,R0 ;"EXT" = EXECUTE & TRACE SETUP
104550 001012 BNE .CNSER
104552 104020 TTIS36
104554 104102 LODAR ;LOAD INTO AR
104556 103403 BCS .XCTER
104560 104115 DFXCTT ;SET CONTINUE BUTTON
104562 000012 CONBUT
104564 000765 BR .XCT2
.XCTER: PMSG <?UCODE HUNG>
104566 104025 $PMSG
104570 145467 $$CLIT
104572 000137 100004 JMP $CNTLC
104576 000137 102102 .CNSER: JMP $DFERR
;BURST THE KL10 CLOCK
104602 104226 .BU: DFLEGAL ;FUNCTION LEGAL ?
104604 005037 152236 CLR TENCLK ;TURN OFF CLOCKK IF ON
104610 104016 TTISDL
104612 103404 BCS 2$ ;NO ARG, DO ONCE
104614 104011 TTIDEC
104616 103402 BCS 2$ ;DO ONCE ANYWAY
104620 104131 1$: BURST ;PERFORM BURST
104622 000746 BR .XCT2
104624 012700 000001 2$: MOV #1,R0 ;DO ONE BURST
104630 000773 BR 1$
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 109
CONS11 PAL[KL,SYS] Page 28 PDP-10 START/STOP FUNCTIONS
;SELECT CLOCK SOURCE
104632 104016 .CS: TTISDL
104634 103012 BCC 1$
104636 013700 157246 MOV CLKDFL,R0
SR R0,2
104646 .CSR=.
104646 042700 177774 BIC #177774,R0
104652 104030 PNTNBR
104654 104031 PCRLF
104656 000137 100014 JMP $CONSL
104662 104017 1$: TTISDO
104664 020027 000002 CMP R0,#2
104670 003022 BGT .CSRER
104672 104054 SHIFTL
104674 000002 2
104676 042737 000014 157246 BIC #14,CLKDFL ;CLEAR OLD SOURCE
104704 050037 157246 .CCMN1: BIS R0,CLKDFL ;SET NEW SOURCE
104710 104226 .CCMN: DFLEGAL ;FUNCTION LEGAL ?
104712 005737 147710 TST TENRUN
104716 001402 BEQ 1$
104720 104077 TENSP ;STOP TEN
104722 103721 BCS .XCTER ;DID NOT STOP PROPERLY
104724 104141 1$: DFWRTT ;WRITE TO CLOCK
104726 157246 CLKDFL
104730 000044 LDSEL
104732 000137 100230 JMP $KONSL
104736 000137 113356 .CSRER: JMP $PARA
;SELECT CLOCK RATE
104742 104016 .CR: TTISDL
104744 103003 BCC 1$
104746 013700 157246 MOV CLKDFL,R0
104752 000735 BR .CSR
104754 104017 1$: TTISDO
104756 020027 000003 CMP R0,#3
104762 003365 BGT .CSRER
104764 042737 000003 157246 BIC #3,CLKDFL ;CLEAR OLD RATE
104772 000744 BR .CCMN1
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 110
CONS11 PAL[KL,SYS] Page 29 PDP-10 START/STOP FUNCTIONS
;PROCESSOR PARITY DISABLE
104774 104022 .PD: TTITRM
104776 005037 157262 CLR PEBITS ;CLEAR PARITY ENABLE BITS
105002 000137 100014 JMP $CONSL
;PARITY ENABLED AND CLOCK ERROR STOP MESSAGES
105006 054
105007 040
105010 101
105011 122
105012 057
105013 101
105014 122
105015 130
105016 000
$PEAR: .ASCIZ %, AR/ARX%
105017 054
105020 040
105021 106
105022 115
105023 040
105024 120
105025 101
105026 122
105027 111
105030 124
105031 131
105032 000
$PEFM: .ASCIZ %, FM PARITY%
105033 054
105034 040
105035 103
105036 122
105037 101
105040 115
105041 040
105042 120
105043 101
105044 122
105045 111
105046 124
105047 131
105050 000
$PECR: .ASCIZ %, CRAM PARITY%
105051 054
105052 040
105053 104
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 111
CONS11 PAL[KL,SYS] Page 29.1 PDP-10 START/STOP FUNCTIONS
105054 122
105055 101
105056 115
105057 040
105060 120
105061 101
105062 122
105063 111
105064 124
105065 131
105066 000
$PEDR: .ASCIZ %, DRAM PARITY%
105067 054
105070 040
105071 106
105072 123
105073 040
105074 120
105075 122
105076 117
105077 102
105100 105
105101 000
$PEFS: .ASCIZ %, FS PROBE%
105102 .EVEN
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 112
CONS11 PAL[KL,SYS] Page 30 PDP-10 START/STOP FUNCTIONS
;PROCESSOR PARITY ENABLE
;PARITY ENABLE BITS ARE CODED AS FOLLOWS:
; AR/ARX, FM, CRAM, DRAM, FS
; 0 = PARITY DISABLED
; 37 WOULD = ALL ENABLED
105102 104016 .PE: TTISDL
105104 103043 BCC 1$
20$: PMSG <ENABLED: >
105106 104025 $PMSG
105110 145503 $$CLIT
105112 013701 157262 MOV PEBITS,R1 ;PRINT PARITY ENABLE BITS
105116 010100 MOV R1,R0
105120 104047 PNTODT
105122 000002 2
105124 032701 000020 10$: BIT #20,R1
105130 001402 BEQ 11$
105132 104025 $PMSG
105134 105006 $PEAR ;AR/ARX PAGE FAIL
105136 032701 000010 11$: BIT #10,R1
105142 001402 BEQ 12$
105144 104025 $PMSG
105146 105017 $PEFM ;FM PARITY
105150 032701 000004 12$: BIT #4,R1
105154 001402 BEQ 13$
105156 104025 $PMSG
105160 105033 $PECR ;CRAM PARITY
105162 032701 000002 13$: BIT #2,R1
105166 001402 BEQ 14$
105170 104025 $PMSG
105172 105051 $PEDR ;DRAM PARITY
105174 032701 000001 14$: BIT #1,R1
105200 001402 BEQ 15$
105202 104025 $PMSG
105204 105067 $PEFS ;FS PROBE
105206 104031 15$: PCRLF
105210 000137 100014 3$: JMP $CONSL
105214 104017 1$: TTISDO
105216 020027 000037 CMP R0,#37
105222 003245 BGT .CSRER
105224 010037 157262 MOV R0,PEBITS ;SAVE
105230 000726 BR 20$
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 113
CONS11 PAL[KL,SYS] Page 31 PDP-10 START/STOP FUNCTIONS
;MICRO-CODE SYNC MARK ROUTINES
105232 012705 777777 .MU: MOV #-1,R5 ;MICRO UNMARK
105236 000401 BR .MMC
105240 005005 .MM: CLR R5 ;MICRO MARK
105242 104226 .MMC: DFLEGAL ;FUNCTION LEGAL ?
105244 104021 TTICRA ;GET C-RAM ADDRESS
105246 010037 147744 MOV R0,$ECADR
105252 104074 RCRAM ;READ C-RAM
105254 005705 TST R5
105256 001004 BNE 3$
105260 052760 000020 000004 BIS #20,4(R0) ;SET MARK BIT
105266 000403 BR .MMX
105270 042760 000020 000004 3$: BIC #20,4(R0) ;CLEAR MARK BIT
105276 010001 .MMX: MOV R0,R1
105300 013700 147744 MOV $ECADR,R0
105304 104073 WCRAM ;WRITE C-RAM BACK
105306 000137 100230 JMP $KONSL
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 114
CONS11 PAL[KL,SYS] Page 32 PDP-10 START/STOP FUNCTIONS
;MICRO-CODE TIME FIELD CHANGE ROUTINE
105312 104226 .MT: DFLEGAL ;FUNCTION LEGAL ?
105314 104021 TTICRA
105316 010037 147744 MOV R0,$ECADR
105322 104017 TTISDO
105324 020027 000003 CMP R0,#3 ;TIME FIELD IS 0-3
105330 003202 BGT .CSRER
105332 010005 MOV R0,R5
105334 013700 147744 MOV $ECADR,R0
105340 104074 RCRAM ;READ C-RAM
105342 042710 000012 BIC #12,(R0) ;CLEAR OLD TIME
105346 005004 CLR R4
105350 032705 000002 BIT #2,R5
105354 001402 BEQ 1$
105356 052704 000010 BIS #10,R4
105362 032705 000001 1$: BIT #1,R5
105366 001402 BEQ 2$
105370 052704 000002 BIS #2,R4
105374 050410 2$: BIS R4,(R0) ;SET NEW TIME
105376 000737 BR .MMX
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 115
CONS11 PAL[KL,SYS] Page 33 PDP-10 START/STOP FUNCTIONS
;CACHE ENABLE
;CACHE ENABLE BITS ARE CODED AS FOLLOWS:
; 10 = CACHE 0
; 4 = CACHE 1
; 2 = CACHE 2
; 1 = CACHE 3
; 17 SIGNIFIES ALL CACHES ENABLED
105400 104016 .CE: TTISDL ;GET ENABLE CODE
105402 103411 BCS 20$ ;CR, PRINT ENABLE
105404 104017 1$: TTISDO
105406 020027 000017 CMP R0,#17 ;ENABLE IS 0 TO 17
105412 003003 BGT 2$
105414 010037 157252 MOV R0,CLKDFL+4 ;PUT IN CLOCK DEFAULT PARAMETER WORD
105420 000402 BR 20$
105422 000137 113452 2$: JMP $PARAM
20$: PMSG <CACHES ENABLED: >
105426 104025 $PMSG
105430 145515 $$CLIT
105432 013701 157252 MOV CLKDFL+4,R1
105436 010100 MOV R1,R0
105440 104047 PNTODT ;PRINT CODE
105442 000002 2
105444 005002 21$: CLR R2
105446 032701 000010 BIT #10,R1 ;CACHE 0 ENABLED ?
105452 001402 BEQ 22$
105454 004737 105532 JSR PC,.CEP
105460 005202 22$: INC R2
105462 032701 000004 BIT #4,R1 ;CACHE 1 ENABLED ?
105466 001402 BEQ 23$
105470 004737 105532 JSR PC,.CEP
105474 005202 23$: INC R2
105476 032701 000002 BIT #2,R1 ;CACHE 2 ENABLED ?
105502 001402 BEQ 24$
105504 004737 105532 JSR PC,.CEP
105510 005202 24$: INC R2
105512 032701 000001 BIT #1,R1 ;CACHE 3 ENABLED ?
105516 001402 BEQ 25$
105520 004737 105532 JSR PC,.CEP
105524 104031 25$: PCRLF
105526 000137 100014 JMP $CONSL
.CEP: PMSG <, CACHE >
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 116
CONS11 PAL[KL,SYS] Page 33.1 PDP-10 START/STOP FUNCTIONS
105532 104025 $PMSG
105534 145536 $$CLIT
105536 010200 MOV R2,R0
105540 104030 PNTNBR ;PRINT CACHE ENABLE DIGIT
105542 000207 RTS PC
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 117
CONS11 PAL[KL,SYS] Page 34 PDP-10 START/STOP FUNCTIONS
;AC BLOCK SELECTION
;SETS UP "PAGDFL" WORD USED BY "DATAO PAG,0"
;DURING "STD,STM,STL & DDT" START COMMANDS
;SAME "PAGDFL" WORD USED BY "DATAO PAG,20"
;DURING AC BLOCK SELECTION COMMAND
105544 104226 .AC: DFLEGAL
105546 012705 157256 MOV #PAGDFL+2,R5
105552 104016 TTISDL ;ALLOW FOR "ACBLK" OR "AC BLK"
105554 103103 BCC 5$ ;NUMBER
105556 122700 000102 CMPB #'B,R0
105562 001100 BNE 5$
105564 104005 TTICHR
105566 122700 000114 CMPB #'L,R0
105572 001074 BNE 5$
105574 104005 TTICHR
105576 122700 000113 CMPB #'K,R0
105602 001070 BNE 5$
105604 104016 TTISDL ;ANY NUMBER ?
105606 103424 BCS 4$ ;NO, PRINT PRESENT SELECTION
105610 104017 TTISDO ;GET SELECTION DIGIT
105612 020027 000007 CMP R0,#7 ;MUST BE 0 TO 7
105616 003062 BGT 5$
105620 001450 BEQ 3$ ;IF BLK #7, GIVE UCODE WARNING
1$: PUSH R0
PMSG <PREV AC BLK >
105624 104025 $PMSG
105626 145547 $$CLIT
105630 011500 MOV (R5),R0
105632 104053 SHIFTR
105634 000013 11.
105636 104030 PNTNBR
105640 104214 PNTCI
105642 020054 ",
POP R0
105646 104054 SHIFTL ;PLACE SELECTION DIGIT IN BITS 6-8
105650 000013 11.
105652 042715 034000 BIC #034000,(R5)
105656 050015 BIS R0,(R5) ;INSERT IN PAGE DEFAULT WORD
4$: PMSG <SELECTED AC BLK >
105660 104025 $PMSG
105662 145564 $$CLIT
105664 011500 MOV (R5),R0 ;PRINT PRESENT AC BLOCK SELECTION
105666 104053 SHIFTR
105670 000013 11.
105672 104030 PNTNBR
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 118
CONS11 PAL[KL,SYS] Page 34.1 PDP-10 START/STOP FUNCTIONS
105674 104031 PCRLF
105676 104104 EXAMT ;SAVE MEM LOCATION 20
105700 000020 20
105702 147606 $SAV20
105704 103423 BCS 6$
105706 104110 DPOSVT ;PUT DATAO PAG ARGUMENT IN 20
105710 000020 20
105712 157254 PAGDFL
105714 103417 BCS 6$
105716 012700 105770 MOV #DATPAG,R0
105722 104101 EXCT ;EXECUTE DATAO PAG
105724 103413 BCS 6$
105726 104110 DPOSVT ;RESTORE 20
105730 000020 20
105732 147606 $SAV20
105734 103407 BCS 6$
105736 000137 100014 JMP $CONSL
3$: PUSH R0
PMSG <UCODE BLK\>
105744 104025 $PMSG
105746 145605 $$CLIT
POP R0
105752 000723 BR 1$
6$: PMSG <?SELECTION ERR>
105754 104025 $PMSG
105756 145620 $$CLIT
105760 000137 100004 JMP $CNTLC
105764 000137 113452 5$: JMP $PARAM ;ERROR
DATPAG: IO10 DATAO,PAG,,20 ;SELECT AC BLOCK
000000 .IIF B ,I=0
.IIF NB ,I=
000000 .IIF B ,XR=0
.IIF NB ,XR=
000002 BLKO=2
000003 DATAO=3
000000 BLKI=0
000001 DATAI=1
000004 CONO=4
000005 CONI=5
000006 CONSZ=6
000007 CONSO=7
000000 APR=0
000004 PI=4
000010 PAG=10
000014 CCA=14
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 119
CONS11 PAL[KL,SYS] Page 34.2 PDP-10 START/STOP FUNCTIONS
000000 ADH=0
000000 ADL=0
.IRPC AD1,20
.IIF GE <ADL-10000>,ADH=ADL/10000
ADL=10*<ADL&7777>+AD1
.ENDM
770000 .IIF GE <ADL-10000>,ADH=ADL/10000
000002 ADL=10*<ADL&7777>+2
770002 .IIF GE <ADL-10000>,ADH=ADL/10000
000020 ADL=10*<ADL&7777>+0
105776 .EVEN
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 120
CONS11 PAL[KL,SYS] Page 35 PDP-10 START/STOP FUNCTIONS
;START PDP10 AT ADDRESS SPECIFIED AS LOWER 18 BITS OF 36-BIT ARGUMENT.
105776 104226 $ST: DFLEGAL ;PDP-10 MUST BE STOPPED BEFORE YOU CAN START IT
106000 104016 TTISDL
106002 103472 BCS 4$ ;NON-NUMBER
106004 104020 TTIS36
106006 $$ST=.
106006 005005 CLR R5
106010 012701 157222 5$: MOV #$$STJRS,R1
106014 112021 MOVB (R0)+,(R1)+
106016 112021 MOVB (R0)+,(R1)+
106020 142711 000003 BICB #3,(R1) ;CLEAR BITS 18-19
106024 151011 BISB (R0),(R1) ;SET LAST TWO BITS
106026 005705 3$: TST R5 ;ADDRESS START?
106030 001442 BEQ 11$ ;YES. DO JUST A JRST
106032 104100 SM ;START MACHINE. RESET MACHINE
106034 103502 BCS $STERR
106036 104110 DPOSVT ;DEPOSIT "DATAO PAG,0" ARGUMENT
106040 000000 0 ;IN AC0, SELECTS CURRENT AC USAGE
106042 157254 PAGDFL
106044 103476 BCS $STERR
106046 104055 SETFLG ;SET TEN RUN FLAG
106050 147710 TENRUN
106052 005037 147442 .IIF DF SAILVR, CLR SWTDEP ;DISABLE AUTO-DEPOSIT!
106056 104145 TENSW ;DEPOSIT PDP-10 SWITCHES
106060 103002 BCC 32$
106062 000137 110270 JMP C10SWE ;SWITCH ERROR
106066 012701 000004 32$: MOV #4.,R1
106072 012700 106246 MOV #$STTB1,R0
1$: PUSH R0
106100 104101 EXCT ;EXECUTE A TEN INSTR
106102 103457 BCS $STERR
POP R0
106106 062700 000005 ADD #5,R0
106112 005301 DEC R1
106114 001370 BNE 1$ ;DO ANOTHER
106116 004737 122042 JSR PC,$TI36C ;ZERO SELECTED AC BLOCK
106122 012701 147502 MOV #$DRAM,R1
106126 012700 000020 MOV #16.,R0 ;FROM AC0 TO AC17
106132 104112 D10ZRO ;NECESSARY FOR FM PARITY
106134 103442 BCS $STERR
106136 012700 157222 11$: MOV #$$STJRS,R0
106142 104101 EXCT ;EXECUTE JRST TO START ADR
106144 103436 BCS $STERR
106146 005037 150042 CLR TENTTY ;TURN OFF "TENCHR" ROUTINE
106152 004737 115154 JSR PC,$CMCLR ;CLEAR COMMON STORAGE
106156 012737 000144 152226 MOV #100.,$ENDCT ;REPORT EOP EVERY 100
106164 000137 104002 JMP $RNN
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 121
CONS11 PAL[KL,SYS] Page 35.1 PDP-10 START/STOP FUNCTIONS
106170 122700 000104 4$: CMPB #'D,R0 ;IF "STD", START 10 DIAGNOSTIC
106174 001006 BNE 6$
106176 012700 100064 MOV #TDIAG,R0
106202 104022 7$: TTITRM
106204 $$$ST=.
106204 012705 777777 MOV #-1,R5
106210 000677 BR 5$
106212 122700 000114 6$: CMPB #'L,R0 ;IF "STL", START PDP-10 LOADER
106216 001003 BNE 8$
106220 012700 100074 MOV #TLDR,R0
106224 000766 BR 7$
106226 122700 000115 8$: CMPB #'M,R0 ;IF "STM", START PDP-10 MONITOR
106232 001017 BNE .CNERR ;IF NONE, ERROR (DON'T START AT THE LAST START ADDR)
106234 012700 100100 MOV #TMON,R0
106240 000760 BR 7$
106242 000137 104566 $STERR: JMP .XCTER
000541 HRRI=541
000515 HRLZI=515
000254 JRST=254
000200 DTE=200
$STTB1: IO10 CONO,APR,,267760 ;RESET APR
000000 .IIF B ,I=0
.IIF NB ,I=
000000 .IIF B ,XR=0
.IIF NB ,XR=
000002 BLKO=2
000003 DATAO=3
000000 BLKI=0
000001 DATAI=1
000004 CONO=4
000005 CONI=5
000006 CONSZ=6
000007 CONSO=7
000000 APR=0
000004 PI=4
000010 PAG=10
000014 CCA=14
000000 ADH=0
000000 ADL=0
.IRPC AD1,267760
.IIF GE <ADL-10000>,ADH=ADL/10000
ADL=10*<ADL&7777>+AD1
.ENDM
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 122
CONS11 PAL[KL,SYS] Page 35.2 PDP-10 START/STOP FUNCTIONS
770000 .IIF GE <ADL-10000>,ADH=ADL/10000
000002 ADL=10*<ADL&7777>+2
770002 .IIF GE <ADL-10000>,ADH=ADL/10000
000026 ADL=10*<ADL&7777>+6
770026 .IIF GE <ADL-10000>,ADH=ADL/10000
000267 ADL=10*<ADL&7777>+7
770267 .IIF GE <ADL-10000>,ADH=ADL/10000
002677 ADL=10*<ADL&7777>+7
772677 .IIF GE <ADL-10000>,ADH=ADL/10000
026776 ADL=10*<ADL&7777>+6
000002 .IIF GE <ADL-10000>,ADH=ADL/10000
067760 ADL=10*<ADL&7777>+0
IO10 CONO,PI,,10000 ;PI SYSTEM CLEAR
000000 .IIF B ,I=0
.IIF NB ,I=
000000 .IIF B ,XR=0
.IIF NB ,XR=
000002 BLKO=2
000003 DATAO=3
000000 BLKI=0
000001 DATAI=1
000004 CONO=4
000005 CONI=5
000006 CONSZ=6
000007 CONSO=7
000000 APR=0
000004 PI=4
000010 PAG=10
000014 CCA=14
000000 ADH=0
000000 ADL=0
.IRPC AD1,10000
.IIF GE <ADL-10000>,ADH=ADL/10000
ADL=10*<ADL&7777>+AD1
.ENDM
770000 .IIF GE <ADL-10000>,ADH=ADL/10000
000001 ADL=10*<ADL&7777>+1
770001 .IIF GE <ADL-10000>,ADH=ADL/10000
000010 ADL=10*<ADL&7777>+0
770010 .IIF GE <ADL-10000>,ADH=ADL/10000
000100 ADL=10*<ADL&7777>+0
770100 .IIF GE <ADL-10000>,ADH=ADL/10000
001000 ADL=10*<ADL&7777>+0
771000 .IIF GE <ADL-10000>,ADH=ADL/10000
010000 ADL=10*<ADL&7777>+0
IO10 CONO,PAG,,0 ;PAGING SYSTEM CLEAR
000000 .IIF B ,I=0
.IIF NB ,I=
000000 .IIF B ,XR=0
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 123
CONS11 PAL[KL,SYS] Page 35.3 PDP-10 START/STOP FUNCTIONS
.IIF NB ,XR=
000002 BLKO=2
000003 DATAO=3
000000 BLKI=0
000001 DATAI=1
000004 CONO=4
000005 CONI=5
000006 CONSZ=6
000007 CONSO=7
000000 APR=0
000004 PI=4
000010 PAG=10
000014 CCA=14
000000 ADH=0
000000 ADL=0
.IRPC AD1,0
.IIF GE <ADL-10000>,ADH=ADL/10000
ADL=10*<ADL&7777>+AD1
.ENDM
770000 .IIF GE <ADL-10000>,ADH=ADL/10000
000000 ADL=10*<ADL&7777>+0
IO10 DATAO,PAG,,0 ;USER BASE CLEAR & AC SELECT
000000 .IIF B ,I=0
.IIF NB ,I=
000000 .IIF B ,XR=0
.IIF NB ,XR=
000002 BLKO=2
000003 DATAO=3
000000 BLKI=0
000001 DATAI=1
000004 CONO=4
000005 CONI=5
000006 CONSZ=6
000007 CONSO=7
000000 APR=0
000004 PI=4
000010 PAG=10
000014 CCA=14
000000 ADH=0
000000 ADL=0
.IRPC AD1,0
.IIF GE <ADL-10000>,ADH=ADL/10000
ADL=10*<ADL&7777>+AD1
.ENDM
770000 .IIF GE <ADL-10000>,ADH=ADL/10000
000000 ADL=10*<ADL&7777>+0
106272 .EVEN
106272 000137 113356 .CNERR: JMP $PARA
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 124
CONS11 PAL[KL,SYS] Page 36 PDP-10 DEPOSIT AND EXAMINE CONSOLE FUNCTIONS
.SBTTL PDP-10 DEPOSIT AND EXAMINE CONSOLE FUNCTIONS
106276 012705 147724 .DP: MOV #.DPXAD,R5
106302 104016 TTISDL
106304 103426 BCS .DPS
106306 104020 TTIS36
106310 012025 MOV (R0)+,(R5)+ ;LOW ADDRESS
106312 011015 MOV (R0),(R5) ;HIGH ADDRESS
106314 005745 .DPNX1: TST -(R5)
106316 104020 .DPCOM: TTIS36 ;GET DATA
106320 010501 MOV R5,R1 ;PTR TO ADR
106322 004737 106366 JSR PC,$TENRN
106326 104105 DPOS ;DO IT
106330 103402 BCS .DPCM1
106332 000137 100230 $VBX: JMP $KONSL
.DPCM1: PMSG <?DM>
106336 104025 $PMSG
106340 145637 $$CLIT
106342 004137 141214 JSR R1,$DFTM1
106346 012705 147724 .DPNX: MOV #.DPXAD,R5
106352 062725 000001 ADD #1,(R5)+ ;BUMP LOW
106356 005515 ADC (R5) ;CARRY TO HIGH
106360 000755 BR .DPNX1
106362 102755 .DPS: BVS .DPCOM ;COLON, USE PRESENT ADDRESS
106364 000742 BR .CNERR
106366 032777 004000 050754 $TENRN: BIT #ERRSTP,@.DIAG1 ;TEN CLOCK RUNNING ?
106374 001402 BEQ 1$ ;YES, OK
106376 000137 107566 JMP TENCERR ;NO, REPORT IT
106402 000207 1$: RTS PC
106404 104022 $VB: TTITRM
106406 005737 147604 TST VRBFLG
106412 001405 BEQ $VB1
106414 005037 147604 CLR VRBFLG
PMSG <CONCISE TYPEOUT
>
106420 104025 $PMSG
106422 145643 $$CLIT
106424 000742 BR $VBX
106426 104055 $VB1: SETFLG
106430 147604 VRBFLG
PMSG <VERBOSE TYPEOUT
>
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 125
CONS11 PAL[KL,SYS] Page 36.1 PDP-10 DEPOSIT AND EXAMINE CONSOLE FUNCTIONS
106432 104025 $PMSG
106434 145665 $$CLIT
106436 000735 BR $VBX
106440 104022 $KA: TTITRM
106442 004737 110540 JSR PC,KASET ;ENABLE KASIM
106446 000731 BR $VBX
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 126
CONS11 PAL[KL,SYS] Page 37 PDP-10 DEPOSIT AND EXAMINE CONSOLE FUNCTIONS
;MEMORY ZERO
; "MZ ADR,COUNT"
106450 104226 .MZ: DFLEGAL ;FUNCTION LEGAL ?
106452 104020 TTIS36 ;INPUT PDP-10 START ADDRESS
106454 013737 147502 147560 MOV $DRAM,MMDAT ;SAVE IT
106462 013737 147504 147562 MOV $DRAM+2,MMDAT+2
106470 012701 147560 MOV #MMDAT,R1 ;POINTER FOR D10ZRO
106474 104020 TTIS36 ;INPUT NUMBER OF PDP-10 WORDS
106476 103437 BCS 1$
106500 013702 147504 MOV $DRAM+2,R2 ;PICK UP NUMBER OF 64K MOBIES
106504 001425 BEQ 2$
106506 100004 BPL 4$
106510 012702 000010 MOV #XMEMSZ/64.,R2 ;MZ 0,-1. DON'T TRY TO CLEAR
106514 005037 147502 CLR $DRAM ; 4096 MILLION WORDS.
106520 005000 4$: CLR R0 ;CLEAR ONE SMALL MOBY
106522 104112 D10ZRO
106524 103430 BCS 3$
106526 004737 120666 JSR PC,$TIRDY ;ALLOW ↑C IN THIS SLOW LOOP
106532 103406 BCS 69$
106534 123727 147764 000003 CMPB $TICHR,#CNTRLC
106542 001002 BNE 69$
106544 000137 120522 JMP $TICC ;↑C, ABORT
106550 005237 147562 69$: INC MMDAT+2 ;BUMP ADDRESS
106554 005302 DEC R2
106556 003360 BGT 4$
106560 013700 147502 2$: MOV $DRAM,R0 ;CLEAR FINAL FRACTIONAL MOBY
106564 001402 BEQ 5$ ;EXACT MULTIPLE OF 64K
106566 104112 D10ZRO ;ZERO MEMORY
106570 103406 BCS 3$
106572 000137 100230 5$: JMP $KONSL
106576 012737 000001 147502 1$: MOV #1,$DRAM ;NO COUNT SPECIFIED
106604 000765 BR 2$ ;SO CLEAR ONE WORD
3$: PMSG <?MZ>
106606 104025 $PMSG
106610 145707 $$CLIT
106612 004137 141214 JSR R1,$DFTM1
106616 000137 107030 JMP $RUNLP
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 127
CONS11 PAL[KL,SYS] Page 38 PDP-10 DEPOSIT AND EXAMINE CONSOLE FUNCTIONS
106622 012705 147724 .EXM: MOV #.DPXAD,R5
106626 005003 CLR R3
106630 104016 TTISDL
106632 103456 BCS .EXMSP ;NON-NUMBER
106634 104020 TTIS36 ;GET PDP-10 ADDRESS
106636 012025 MOV (R0)+,(R5)+ ;SAVE LOW 16 BITS
106640 011015 MOV (R0),(R5) ;SAVE HIGH BITS
106642 005745 TST -(R5)
106644 104015 TTIBRK ;GET BREAK
106646 103611 BCS .CNERR
106650 122700 000054 CMPB #',,R0
106654 001004 BNE .EXCOM
106656 005103 COM R3 ;COMMA, MULTIPLE PRINT
106660 104044 PNORML
106662 104020 TTIS36 ;GET ENDING ADDRESS
106664 011004 MOV (R0),R4 ;SAVE LOW 16 BITS
106666 010500 .EXCOM: MOV R5,R0
106670 004737 106366 JSR PC,$TENRN
106674 104103 EXAM
106676 103424 BCS 3$
106700 105737 147752 5$: TSTB RPTFLG
106704 001017 BNE 1$
106706 010500 MOV R5,R0
106710 104137 PNTADR
106712 104177 PNTBAK ;BACKUP POINTER TO WIPE OUT SPACE
106714 104033 PSLASH
106716 012700 147502 MOV #$DRAM,R0
106722 104042 PNT36
106724 005703 TST R3 ;DOING MULTIPLE PRINT ?
106726 001405 BEQ 2$
106730 104031 PCRLF
106732 021504 CMP (R5),R4
106734 001402 BEQ 2$
106736 005215 INC (R5) ;INCREMENT LOW 16 BITS, 64K
106740 000752 BR .EXCOM ;DO NEXT ADDRESS
106742 104031 2$: PCRLF
106744 000137 100230 1$: JMP $KONSL
106750 100404 3$: BMI 4$
PMSG <?EM>
106752 104025 $PMSG
106754 145713 $$CLIT
106756 004137 141214 JSR R1,$DFTM1
106762 104026 4$: $PMSGR
106764 125114 $EBPAR ;E-BUS PARITY ERROR
106766 000744 BR 5$
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 128
CONS11 PAL[KL,SYS] Page 38.1 PDP-10 DEPOSIT AND EXAMINE CONSOLE FUNCTIONS
106770 102405 .EXMSP: BVS .EXMNX ;COLON OR SLASH, EXAMINE NEXT
106772 001335 BNE .EXCOM ;NONE, EXAMINE SAME
106774 162725 000001 SUB #1,(R5)+ ;UPARROW, EXAMINE PREVIOUS
107000 005615 SBC (R5)
107002 000405 BR .EXMN1
107004 012705 147724 .EXMNX: MOV #.DPXAD,R5
107010 062725 000001 ADD #1,(R5)+
107014 005515 ADC (R5)
107016 005237 150736 .EXMN1: INC $INPTC
107022 005003 CLR R3
107024 005745 TST -(R5)
107026 000717 BR .EXCOM
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 129
CONS11 PAL[KL,SYS] Page 39 CONSOLE IDLE RUN LOOP
.SBTTL CONSOLE IDLE RUN LOOP
;PROVIDES PDP-10 SUPPORT WHEN "TENRUN" SET
;AND ADDITIONALY PDP-10 MONITOR SUPPORT IF "MONMODE" SET
107030 105737 147710 $RUNLP: TSTB TENRUN ;PDP-10 RUN TIME SUPPORT ?
107034 001002 BNE 1$ ;JUMP IF YES
107036 000137 120146 JMP $TTILIN ;NO, CONSOLE COMMAND INPUT
107042 005037 147622 1$: CLR DDTTM2 ;SETUP DDT MODE TIMEOUT
107046 032777 002000 050274 2$: BIT #KLRUN,@.DIAG1 ;IS THE KL10 RUNNING?
107054 001002 BNE 3$ ;YES.
107056 000137 107710 JMP TENDEAD ;PDP-10 HALTED
107062 032777 004000 050260 3$: BIT #ERRSTP,@.DIAG1 ;PDP-10 CLOCK ERROR STOP ?
107070 001402 BEQ 31$ ;NO.
107072 000137 107566 JMP TENCERR ;YES, REPORT.
107076 004737 110742 31$: JSR PC,C10COP ;PERFORM CLOCK OPERATIONS
.LIF DF %%QMP
107102 004737 137350 JSR PC,SND10 ;CHECK FOR QUEUED MESSAGE FOR 10
.LIF NDF %%QMP
BIT #TO11DB,@.STDTE ;IS PDP-10 REQUESTING SERVICE?
.LIF DF %%QMP
107106 005737 157136 TST T11DBF ;IS PDP-10 REQUESTING SERVICE?
107112 001141 BNE TENCMD ;YES.
107114 005737 147706 5$: TST MONMODE ;MONITOR SUPPORT MODE ?
107120 001412 BEQ 20$ ;NO
107122 004737 120666 6$: JSR PC,$TIRDY ;TTY INPUT FLAG SET ?
107126 103024 BCC MTTYIN ;YES, SEND CHAR TO 10
107130 005737 147704 7$: TST MTTYOF ;TTY OUTPUT IN PROGRESS ?
107134 001744 BEQ 2$ ;NO
107136 004737 120774 8$: JSR PC,$TORDY ;TTY OUTPUT COMPLETED ?
107142 103057 BCC MTTYOC ;YES, NOTIFY 10
107144 000740 BR 2$ ;STAY IN MONITOR LOOP
107146 005737 147760 20$: TST DDTFLG ;PDP-10 DDT INPUT MODE ?
107152 001405 BEQ 21$ ;NO
107154 005337 147622 23$: DEC DDTTM2 ;WAITED LONG ENOUGH ?
107160 001332 BNE 2$ ;NOT YET
107162 005037 147760 CLR DDTFLG ;YES, REVERT TO CONSOLE MODE
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 130
CONS11 PAL[KL,SYS] Page 39.1 CONSOLE IDLE RUN LOOP
107166 004737 120666 21$: JSR PC,$TIRDY ;ANY TTY INPUT YET ?
107172 103725 BCS 2$ ;NO, STAY IN RUN LOOP
107174 000137 120062 JMP $TILRN ;YES, GO INPUT
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 131
CONS11 PAL[KL,SYS] Page 40 CONSOLE IDLE RUN LOOP
;MONITOR TELETYPE CHARACTER INPUT -- MTTYIN MTTYI0 MTTYI1 C10DN1 MTTYER MTTYOC MTTYO MTTYP MTTYX MTTYC MTTYCF $MC MTTYS C10DN
2
107200 113700 147764 MTTYIN: MOVB $TICHR,R0 ;GET INPUT CHAR
107204 120027 000030 CMPB R0,#MSWCHR ;MONITOR TO "KLDCP" SWITCH CHAR ?
107210 001004 BNE MTTYI1 ;JUMP IF NOT.
MTTYI0: PMSG <\KLDCP\. ←>
107212 104025 $PMSG
107214 145717 $$CLIT
107216 000137 120146 JMP $TTILIN ;READ ONE KLDCP COMMAND, REVERT TO RUN LOOP
107222 010037 147466 MTTYI1: MOV R0,TENDAT
107226 012737 004000 147444 .IIF NE EPTREL, MOV #XEPT!PRTOFF,$TADSP ;SET ADDR MODE FOR NEXT EXDEP
107234 104110 DPOSVT ;SEND CHAR TO TEN
107236 000450 $DTF11
107240 147466 TENDAT
107242 103415 BCS MTTYER ;FAILED
107244 012737 004000 147444 .IIF NE EPTREL, MOV #XEPT!PRTOFF,$TADSP ;SET ADDR MODE FOR NEXT EXDEP
107252 104111 D10MON ;SET -1 TO 10 TTY INPUT FLAG
107254 000456 $DTMTI
107256 103407 BCS MTTYER
107260 005737 147700 C10DN1: TST KASIM
107264 001261 BNE $RUNLP ;AVOID DINGING 10 IF KASIM
107266 012777 000400 050060 C10DN2: MOV #INT10S,@.STDTE ;DING TEN
107274 000655 BR $RUNLP
107276 000137 110100 MTTYER: JMP C10TIE
;MONITOR TELETYPE OUTPUT COMPLETE
MTTYOC:
107302 012737 004000 147444 .IIF NE EPTREL, MOV #XEPT!PRTOFF,$TADSP ;SET ADDR MODE FOR NEXT EXDEP
107310 104111 D10MON ;SET -1 TO 10 TTY OUTPUT DONE FLAG
107312 000455 $DTMTD
107314 103770 BCS MTTYER
107316 005037 147704 CLR MTTYOF ;CLEAR OUTPUT IN PROGRESS
107322 000756 BR C10DN1
;MONITOR TELETYPE OUTPUT ROUTINE
107324 010500 MTTYO: MOV R5,R0 ;GET OUTPUT CHAR
107326 042700 177400 BIC #177400,R0 ;STRIP TO 8 BITS, 10 DOES PARITY
107332 110037 147762 MOVB R0,$TOCHR ;PRINT CHAR
107336 004737 121036 JSR PC,$TOOUT
107342 104055 MTTYP: SETFLG
107344 147704 MTTYOF ;SET OUTPUT IN PROGRESS FLAG
107346 000467 MTTYX: BR C10DON ;ALLOW 10 TO CONTINUE
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 132
CONS11 PAL[KL,SYS] Page 40.1 CONSOLE IDLE RUN LOOP
;MONITOR MODE CONTROL
107350 104055 MTTYC: SETFLG ;SET MONITOR MODE.
107352 147706 MONMODE
107354 000772 BR MTTYP ;SET OUTPUT IN PROGRESS, EVEN IF IT'S NOT.
107356 005037 147706 MTTYCF: CLR MONMODE ;CLEAR
107362 000771 BR MTTYX
107364 104055 $MC: SETFLG ;CONSOLE MONITOR CONTINUE
107366 147706 MONMODE
107370 104055 SETFLG
107372 147710 TENRUN ;ONLY WAY TO GET BACK FROM CONTROL C
107374 104055 SETFLG
107376 147634 PRGRUN
107400 104055 SETFLG
107402 147704 MTTYOF ;SET OUTPUT IN PROGRESS FLAG (even if not true)
107404 000550 BR $$TDX
107406 013700 147706 MTTYS: MOV MONMODE,R0 ;SEND 10 MONITOR TTY STATE
107412 000137 110056 JMP C10TIX
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 133
CONS11 PAL[KL,SYS] Page 41 PDP-10 RUN TIME SUPPORT ;TENCMD CMD10T C10DON
.SBTTL PDP-10 RUN TIME SUPPORT ;TENCMD CMD10T C10DON
TENCMD:
107416 012737 004000 147444 .IIF NE EPTREL, MOV #XEPT!PRTOFF,$TADSP ;SET ADDR MODE FOR NEXT EXDEP
107424 104104 EXAMT ;GET COMMAND CODE
107426 000451 $DTCMD
107430 147614 $ECMD
107432 103004 BCC 1$
107434 100002 BPL 2$ ;EXAMINE FAILED
107436 104025 $PMSG
107440 125114 $EBPAR ;E-BUS PARITY ERROR
107442 000443 2$: BR C10DNX
107444 013705 147614 1$: MOV $ECMD,R5
107450 010501 MOV R5,R1
107452 000301 SWAB R1
107454 042701 177760 BIC #177760,R1
SL R1,1
107462 000171 107466 JMP @CMD10T(R1) ;DISPATCH TO ROUTINE
107466 107772 CMD10T: C10TO ;TTY OUT
107470 110406 C10PRG ;PROGRAM CONTROL
107472 110574 C10CLK ;CLOCK
107474 110170 C10SW ;SWITCHES
107476 107772 C10TO ;TTY OUT
107500 110020 C10TI ;TTY IN
107502 110146 C10PNT ;PRINT CONTROL
107504 110344 C10DDT ;DDT INPUT MODE
107506 107324 MTTYO ;MONITOR TTY OUTPUT
107510 107350 MTTYC ;MONITOR TTY MODE CONTROL ON
107512 107356 MTTYCF ;MONITOR TTY MODE CONTROL OFF
107514 107406 MTTYS ;MONITOR TTY STATE
107516 137166 QMPCMD ;14 COMMAND FOR QMP (TO11 ITEM COUNT)
107520 107552 C10DNX ;15-17 UNUSED NOW
107522 107552 C10DNX
107524 107552 C10DNX
C10DON:
.IIF NDF %%QMP, MOV #INT11C,@.STDTE ;CLEAR DONG
107526 005037 157136 .IIF DF %%QMP, CLR T11DBF ;CLEAR SOFTWARE DONG
107532 012737 004000 147444 .IIF NE EPTREL, MOV #XEPT!PRTOFF,$TADSP ;SET ADDR MODE FOR NEXT EXDEP
107540 104111 D10MON ;SET -1 TO 10 "$DTFLG"
107542 000444 $DTFLG ;DTE20 OPERATION COMPLETE FLAG
107544 103402 BCS C10DNX ;next page.
107546 000137 107266 JMP C10DN2 ;DONG 10, WAIT FOR NEXT COMMAND
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 134
CONS11 PAL[KL,SYS] Page 42 PDP-10 RUN TIME SUPPORT ;TENCMD CMD10T C10DON
;C10DNX, TENCERR
.IF NDF %%QMP
QMPCMD: ;COMMAND UNDEFINED IF NO QMP
.ENDC
107552 005037 147710 C10DNX: CLR TENRUN
PMSG <?10 CMD>
107556 104025 $PMSG
107560 145732 $$CLIT
107562 004137 141214 JSR R1,$DFTM1 ;FALLS INTO TENCERR
107566 005037 147710 TENCERR:CLR TENRUN
107572 005037 147474 CLR KLCLKR ;CLEAR TEN RUNNING
107576 104043 PFORCE
PMSG <\KL10 CLOCK ERROR STOP>
107600 104025 $PMSG
107602 145742 $$CLIT
107604 104140 DFRDT
107606 000106 106
107610 032777 000040 047504 BIT #BIT5,@.DAT3 ;FIELD SERVICE ?
107616 001402 BEQ 1$
107620 104025 $PMSG
107622 105067 $PEFS ;FS PROBE
107624 104140 1$: DFRDT
107626 000105 105
107630 032777 000040 047464 BIT #BIT5,@.DAT3 ;FM PARITY ?
107636 001402 BEQ 2$
107640 104025 $PMSG
107642 105017 $PEFM ;FM PARITY
107644 104140 2$: DFRDT
107646 000104 104
107650 032777 000040 047444 BIT #BIT5,@.DAT3 ;CRAM PARITY ?
107656 001402 BEQ 3$
107660 104025 $PMSG
107662 105033 $PECR ;CRAM PARITY
107664 104140 3$: DFRDT
107666 000103 103
107670 032777 000040 047424 BIT #BIT5,@.DAT3 ;DRAM PARITY ?
107676 001402 BEQ 4$
107700 104025 $PMSG
107702 105051 $PEDR ;DRAM PARITY
107704 104132 4$: PNTCPU ;PRINT ALL CPU INFORMATION
107706 000407 BR $$TDX
107710 005037 147710 TENDEAD: CLR TENRUN ;CLEAR TEN RUN FLAG
107714 104043 PFORCE
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 135
CONS11 PAL[KL,SYS] Page 42.1 PDP-10 RUN TIME SUPPORT ;TENCMD CMD10T C10DON
PMSG <\KL10 HALTED >
107716 104025 $PMSG
107720 145771 $$CLIT
107722 004737 107732 JSR PC,$ALSTA
107726 000137 100014 $$TDX: JMP $CONSL
107732 104055 $ALSTA: SETFLG ;MAKE COMMAND ROUTINES INTO SUBROUTINES!
107734 147754 ALLFLG
107736 004737 102642 JSR PC,$ALLPC ;PRINT PC
107742 004737 102760 JSR PC,$ALVMA ; AND VMA
107746 004737 103420 JSR PC,$ALLPI ; AND PI
PMSG < >
107752 104025 $PMSG
107754 146007 $$CLIT
107756 004737 103024 JSR PC,$ALPCF ; AND PC FLAGS
107762 104031 PCRLF ;AND CRLF
107764 005037 147754 CLR ALLFLG
107770 000207 RTS PC
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 136
CONS11 PAL[KL,SYS] Page 43 PDP-10 RUN TIME SUPPORT ;TENCMD CMD10T C10DON
;C10TO, C10TI
107772 104055 C10TO: SETFLG ;TEN TO ELEVEN FOR TYPEOUT
107774 150042 TENTTY ;ALLOW "TENCHR" TO OPERATE
107776 012737 150052 150270 MOV #$TNBUF,$TNPTC ;RESET 10 INPUT POINTERS
110004 012737 150052 150272 MOV #$TNBUF,$TNPTR
110012 010501 MOV R5,R1 ;GET ASCII CHAR
110014 104154 PLDBUF ;PUT IN TTY OUT BUFFER
110016 000643 BR C10DON
110020 005037 147760 C10TI: CLR DDTFLG ;TTY INPUT TO 10
110024 022737 150274 150514 CMP #$OUTBF,$OUTPT ;ANY OUTPUT WAITING ?
110032 001025 BNE C10TIZ ;YES
110034 023737 150270 150272 11$: CMP $TNPTC,$TNPTR ;CURRENT BUFFER EMPTY ?
110042 002021 BGE C10TIZ ;YES
110044 013701 150270 MOV $TNPTC,R1 ;GET CHAR POINTER
110050 112100 MOVB (R1)+,R0 ;FETCH CHAR FROM 10 BUFFER
110052 010137 150270 MOV R1,$TNPTC
110056 010037 147466 C10TIX: MOV R0,TENDAT ;PUT CHAR IN 28-35 OF TEN WORD
110062 012737 004000 147444 .IIF NE EPTREL, MOV #XEPT!PRTOFF,$TADSP ;SET ADDR MODE FOR NEXT EXDEP
110070 104110 DPOSVT ;DEPOSIT IN FROM 11 WORD
110072 000450 $DTF11
110074 147466 TENDAT
110076 103213 BCC C10DON
C10TIE: PMSG <?10 TTI>
110100 104025 $PMSG
110102 146011 $$CLIT
110104 000473 BR $$C1
110106 104004 C10TIZ: TTILIN ;INPUT LINE FOR TEN
110110 103414 BCS 5$ ;NO RESPONSE
110112 012701 150052 MOV #$TNBUF,R1
110116 104005 3$: TTICHR ;GET CHAR FROM INPUT
110120 103402 BCS 4$ ;EMPTY
110122 110021 MOVB R0,(R1)+ ;PUT IN TEN BUFFER
110124 000774 BR 3$
110126 010137 150272 4$: MOV R1,$TNPTR ;UPDATE 10 EOL POINTER
110132 012737 150052 150270 MOV #$TNBUF,$TNPTC ;SET PICKUP POINTER TO START
110140 000727 BR C10TI ;GO SEND FIRST CHAR TO TEN
110142 005000 5$: CLR R0 ;NULL = TIMEOUT
110144 000744 BR C10TIX
110146 010501 C10PNT: MOV R5,R1 ;GET CONTROL BYTE
110150 042701 177400 BIC #177400,R1
110154 010137 150000 MOV R1,$FORCE ;PUT IN FORCE FLAG
110160 005037 147760 CLR DDTFLG ;CLEAR DDT MODE
110164 000137 107526 C10X: JMP C10DON
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 137
CONS11 PAL[KL,SYS] Page 44 PDP-10 RUN TIME SUPPORT ;TENCMD CMD10T C10DON
;Switch functions. C10SW
110170 010501 C10SW: MOV R5,R1 ;LOAD SWITCHES INTO FROM 11 WORD
110172 042701 177774 BIC #177774,R1 ;2 BIT SUBFUNCTION
SL R1,1
110200 000171 110204 JMP @C10SWT(R1)
110204 110226 C10SWT: C10SW0 ;NORMAL SWITCH READ
110206 110214 C10SW1 ;ENABLE AUTOMATIC DEPOSIT SWITCHES IN 10-MEMORY
110210 110222 C10SW2 ;DISABLE AUTOMATIC DEPOSIT SWITCHES IN 10-MEMORY
110212 110226 C10SW0 ;UNDEFINED.
110214 104055 C10SW1: SETFLG
110216 147442 SWTDEP
110220 000402 BR C10SW0
110222 005037 147442 C10SW2: CLR SWTDEP ;DON'T AUTO-DEPOSIT
C10SW0:
110226 012737 004000 147444 .IIF NE EPTREL, MOV #XEPT!PRTOFF,$TADSP ;SET ADDR MODE FOR NEXT EXDEP
110234 104110 DPOSVT ;LOAD SWITCHES INTO FROM 11 WORD
110236 000450 $DTF11
110240 157240 SWS10
110242 103412 BCS C10SWE ;BRANCH IF LOSING
110244 005737 147442 TST SWTDEP ;DID PDP-10 ASK FOR SWITCHES?
110250 001745 BEQ C10X ;NO. WELL, DON'T STORE UNTIL ASKED. DONE
110252 012737 004000 147444 .IIF NE EPTREL, MOV #XEPT!PRTOFF,$TADSP ;SET ADDR MODE FOR NEXT EXDEP
110260 104110 DPOSVT ;LOAD SWITCHES INTO $DTSWR
110262 000457 $DTSWR
110264 157240 SWS10
110266 103336 BCC C10X ;BRANCH IF WINNING
C10SWE: PMSG <?10 SW>
110270 104025 $PMSG
110272 146021 $$CLIT
110274 000137 100004 $$C1: JMP $CNTLC
110300 012705 157240 $SW: MOV #SWS10,R5
110304 104016 TTISDL
110306 103407 BCS 1$ ;NON-NUMBER, TYPE PRESENT
110310 104020 TTIS36
110312 012025 MOV (R0)+,(R5)+ ;PUT IN SWITCH WORD
110314 011015 MOV (R0),(R5)
110316 104145 2$: TENSW ;DO PDP-10 SWITCHES
110320 103763 BCS C10SWE ;ERROR
110322 000137 100230 3$: JMP $KONSL
110326 104145 1$: TENSW ;FIRST READ AND STORE CURRENT SWITCHES
110330 103757 BCS C10SWE
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 138
CONS11 PAL[KL,SYS] Page 44.1 PDP-10 RUN TIME SUPPORT ;TENCMD CMD10T C10DON
110332 104043 PFORCE
110334 010500 MOV R5,R0 ;PRINT CURRENT SWITCHES
110336 104042 PNT36
110340 104031 PCRLF
110342 000767 BR 3$
110344 104055 C10DDT: SETFLG
110346 147760 DDTFLG ;SET FOR DDT MODE INPUT
110350 104043 PFORCE ;SET FORCED PRINTOUT
110352 022737 150274 150514 CMP #$OUTBF,$OUTPT ;ANY OUTPUT WAITING ?
110360 001403 BEQ 2$ ;NO
110362 104055 SETFLG
110364 150004 $TTLKF ;PREVENT INPUT CHECKS
110366 104151 PRINTT ;YES, PRINT IT
110370 104006 2$: TTLOOK ;GET INPUT CHAR
110372 103400 BCS 3$ ;NOTHING THERE, SEND ZERO
110374 120027 000030 3$: CMPB R0,#MSWCHR ;SWITCH TO KLDCP?
110400 001226 BNE C10TIX ;NO.
110402 000137 107212 JMP MTTYI0 ;YES. READ A LINE FOR KLDCP
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 139
CONS11 PAL[KL,SYS] Page 45 PDP-10 RUN TIME SUPPORT ;TENCMD CMD10T C10DON
;C10PRG C10PT C10P2 C10P1 C10X1 C10P3 C10P4 C10P5 C10KAS KASET
110406 010501 C10PRG: MOV R5,R1 ;GET CONTROL FIELD
110410 042701 177760 BIC #177760,R1
SL R1,1
110416 000171 110422 JMP @C10PT(R1) ;DISPATCH
110422 107710 C10PT: TENDEAD ;HALT
110424 110466 C10P1 ;FATAL
110426 110462 C10P2 ;ERROR HALT
110430 110476 C10P3 ;END OF PROGRAM
110432 110504 C10P4 ;END OF PASS
110434 110510 C10P5 ;GIVE PDP-10 CLOCK DEFAULT WORD
110436 112156 DIASEL ;"DIAMON" FILE SELECTION
110440 112242 DIARD ;"DIAMON" FILE READ
110442 112144 P10CMD ;PDP-10 PROGRAM COMMAND
110444 110530 C10KAS ;TURN ON KA SIMULATION
110446 107552 C10DNX
110450 107552 C10DNX
110452 107552 C10DNX
110454 107552 C10DNX
110456 107552 C10DNX
110460 107552 C10DNX
110462 105037 147710 C10P2: CLRB TENRUN
110466 005037 152236 C10P1: CLR TENCLK
110472 000137 107526 C10X1: JMP C10DON
110476 105037 147710 C10P3: CLRB TENRUN ;TURN OFF TEN RUNNING
110502 104062 ERREOP ;END OF PROGRAM
110504 104061 C10P4: EOP
110506 000626 BR C10X
C10P5:
110510 012737 004000 147444 .IIF NE EPTREL, MOV #XEPT!PRTOFF,$TADSP ;SET ADDR MODE FOR NEXT EXDEP
110516 104110 DPOSVT
110520 000450 $DTF11
110522 157246 CLKDFL
110524 103453 BCS C10BCR
110526 000442 BR C10CX
110530 004737 110540 C10KAS: JSR PC,KASET ;SET KASIM MODE
110534 000137 107526 JMP C10DON
110540 005737 147700 KASET: TST KASIM
110544 001012 BNE 1$ ;KASIM ALREADY ENABLED
110546 104055 SETFLG
110550 147700 KASIM
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 140
CONS11 PAL[KL,SYS] Page 45.1 PDP-10 RUN TIME SUPPORT ;TENCMD CMD10T C10DON
110552 104055 SETFLG
110554 147442 SWTDEP ;ENABLE AUTO SWITCH DEPOSIT
110556 104055 SETFLG
110560 147706 MONMODE ;TURN ON MONMODE FOR TTY I/O
110562 104055 SETFLG
110564 147704 MTTYOF ;SET TTY OUTPUT DONE FLAG
110566 104055 SETFLG
110570 152236 TENCLK ;ENABLE CLOCK INTERRUPTS AND SETTING DTCLK
110572 000207 1$: RTS PC
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 141
CONS11 PAL[KL,SYS] Page 46 PDP-10 RUN TIME SUPPORT ;TENCMD CMD10T C10DON
;Clock operations. C10CLK
110574 010501 C10CLK: MOV R5,R1
000007 .IIF EQ SAILVR, BIC #177774,R1
110576 042701 177770 .IIF GT SAILVR, BIC #177770,R1 ;3 BITS FOR SAIL
SL R1,1
110604 000171 110610 JMP @C10CPT(R1)
110610 110630 C10CPT: C10C0 ;DISABLE CLOCK COUNT
110612 110660 C10C1 ;RESET CLOCK COUNT. ENABLE CLOCK COUNT
110614 110714 C10C2 ;RESET CLOCK. ENABLE CLOCK INT AFTER PERIOD
110616 110640 C10C3 ;READ CLOCK COUNT TO 10.
000007 .IF GT SAILVR
110620 111154 C10C4 ;SET TIME BASE FROM 10. ENABLE KEEPING TIME
110622 111342 C10C5 ;GIVE TIME BASE TO 10.
.IF DF CLKASB
110624 111550 C10C6 ;STORE AND ENABLE STORING TIME IN $DTTIME
110626 111140 C10CER
.IFF
C10CER ;ERROR
C10CER ;ERROR
.ENDC ;CLKASB
.ENDC ;SAILVR
110630 005037 152236 C10C0: CLR TENCLK
110634 000137 107526 C10CX: JMP C10DON
C10C3:
110640 012737 004000 147444 .IIF NE EPTREL, MOV #XEPT!PRTOFF,$TADSP ;SET ADDR MODE FOR NEXT EXDEP
110646 104110 DPOSVT ;LOAD CLOCK COUNT INTO FROM 11 WORD
110650 000450 $DTF11
110652 147446 CLKCNT
110654 103531 C10BCR: BCS C10CER ;ERROR
110656 000766 BR C10CX
110660 104055 C10C1: SETFLG
110662 152236 TENCLK
.IF NDF SAILVR
C10CX1: BIC #200,KWLKS
1$: TSTB KWLKS ;WAIT FOR CLOCK
BPL 1$ ;THEN CLEAR TO ALLOW FOR
BIC #200,KWLKS ;16MS BEFORE 1ST CLOCK
.IFF
110664 005037 157160 C10CX1: CLR CLKFLG ;SAIL VERSION. WAIT FOR CLOCK FLAG TO CHANGE
110670 005737 157160 1$: TST CLKFLG
110674 001775 BEQ 1$ ;LOOP UNTIL INTERRUPT SEEN.
.ENDC
110676 012700 147446 MOV #CLKCNT,R0 ;INIT CLOCK COUNTER
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 142
CONS11 PAL[KL,SYS] Page 46.1 PDP-10 RUN TIME SUPPORT ;TENCMD CMD10T C10DON
110702 005020 CLR (R0)+
110704 005020 CLR (R0)+
110706 005010 CLR (R0)
110710 000137 107526 JMP C10DON
C10C2:
110714 012737 004000 147444 .IIF NE EPTREL, MOV #XEPT!PRTOFF,$TADSP ;SET ADDR MODE FOR NEXT EXDEP
110722 104104 EXAMT ;GET WAIT COUNT FROM TO 11 WORD
110724 000447 $DTT11
110726 147454 C10CW
110730 103503 BCS C10CER
110732 012737 177400 152236 MOV #177400,TENCLK
110740 000751 BR C10CX1
C10COP:
.IF NDF SAILVR
TSTB KWLKS ;CLOCK FLAG SET ?
BPL 1$ ;NO, RETURN
BIC #200,KWLKS ;CLEAR FLAG
.IFF
110742 005737 157160 TST CLKFLG
110746 001473 BEQ 1$
110750 005037 157160 CLR CLKFLG
.ENDC
110754 005237 147702 INC $TTYTIM ;COUNT TTY TIMER
110760 023737 177570 157230 CMP SWR,$$SWR ;PDP-11 CONSOLE SWITCHES CHANGED ?
110766 001404 BEQ 3$ ;NO
PUSH R0
110772 104145 TENSW ;YES, DO PDP-10 SWITCHES
110774 103461 BCS C10CER ;ERROR
POP R0
111000 105737 147710 3$: TSTB TENRUN ;IS 10 RUNNING ?
111004 001454 BEQ 1$ ;NO
.IF DF CLKASB
111006 005737 157140 TST TMSFLG
111012 001413 BEQ 4$ ;NOT TIME TO STORE TIME
111014 005037 157140 CLR TMSFLG
111020 004737 111600 JSR PC,RDCLK ;READ TIME/DATE INTO TIMTMP
111024 012737 004000 147444 .IIF NE EPTREL, MOV #XEPT!PRTOFF,$TADSP ;SET ADDR MODE FOR NEXT EXDEP
111032 104106 DPOST ;STORE IN EPT DTTIME
111034 000446 $DTTIME
111036 157152 TIMTMP
111040 103437 BCS C10CER ;ERROR
.ENDC ;DF CLKAB
111042 005737 152236 4$: TST TENCLK
111046 001433 BEQ 1$ ;CLOCK NOT ENABLED
111050 062737 000001 147446 ADD #1,CLKCNT ;INCREMENT PDP-10 CLOCK COUNT
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 143
CONS11 PAL[KL,SYS] Page 46.2 PDP-10 RUN TIME SUPPORT ;TENCMD CMD10T C10DON
111056 005537 147450 ADC CLKCNT+2
111062 005537 147452 ADC CLKCNT+4
111066 105737 152236 TSTB TENCLK ;DOING WAIT ?
111072 001004 BNE 2$ ;NO
111074 023737 147446 147454 CMP CLKCNT,C10CW ;WAITED LONG ENOUGH ?
111102 001015 BNE 1$ ;NOT YET
2$: PUSH <R0,R1>
111110 012737 004000 147444 .IIF NE EPTREL, MOV #XEPT!PRTOFF,$TADSP ;SET ADDR MODE FOR NEXT EXDEP
111116 104111 D10MON ;SET -1 TO 10 "$DTCLK"
111120 000445 $DTCLK
111122 103406 BCS C10CER
111124 012777 000400 046222 MOV #INT10S,@.STDTE ;DING TEN
POP <R1,R0>
111136 000207 1$: RTS PC
111140 005037 152236 C10CER: CLR TENCLK
PMSG <?10 CLKOP>
111144 104025 $PMSG
111146 146030 $$CLIT
111150 000137 100004 JMP $CNTLC
000007 .IFG SAILVR
C10C4:
111154 012737 004000 147444 .IIF NE EPTREL, MOV #XEPT!PRTOFF,$TADSP ;SET ADDR MODE FOR NEXT EXDEP
111162 104104 EXAMT ;GET ADDRESS FROM TO 11 WORD
111164 000447 $DTT11
111166 157144 TIMADR
111170 103763 BCS C10CER ;CAN'T READ ADDRESS
111172 012700 157144 MOV #TIMADR,R0
111176 042760 177774 000002 BIC #177774,2(R0) ;CLEAR ALL BUT BITS 18-19 (TIMADR+2)
111204 012737 024000 147444 MOV #EXVIRT!PRTOFF,$TADSP ;ADDRESS GIVEN IS EXEC VIRTUAL
111212 104103 EXAM ;EXAMINE 10. RESULT TO $DRAM
111214 103751 BCS C10CER ;IF EXAMINE FAILED.
111216 013700 147502 MOV $DRAM,R0 ;HIGH WORD BITS 20-35
SL R0,3 ;SHIFT THREE PLACES
111230 010037 157150 MOV R0,TIMADR+4 ;SAVE HIGH BITS FOR AWHILE
111234 012700 157144 MOV #TIMADR,R0
111240 062720 000001 ADD #1,(R0)+ ;INCREMENT PDP-10 ADDRESS
111244 005510 ADC (R0) ;FOR FETCH OF LOW ORDER WORD
111246 042710 177774 BIC #177774,(R0)
111252 005740 TST -(R0)
111254 012737 024000 147444 MOV #EXVIRT!PRTOFF,$TADSP ;ADDRESS GIVEN IS EXEC VIRTUAL
111262 104103 EXAM
111264 103725 BCS C10CER
111266 012700 147506 MOV #$DRAM+4,R0
111272 042710 177770 BIC #177770,(R0) ;CLEAR ALL BUT LOW WORD'S BITS 1-3
111276 053710 157150 BIS TIMADR+4,(R0) ;INCLUDE BITS 23-35 OF HIGH WORD
111302 012701 157170 MOV #TIMBAS+4,R1
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 144
CONS11 PAL[KL,SYS] Page 46.3 PDP-10 RUN TIME SUPPORT ;TENCMD CMD10T C10DON
PUSH PS
111312 012737 000340 177776 MOV #PR7,PS ;TURN OFF INTERRUPTS
111320 011011 MOV (R0),(R1)
111322 014041 MOV -(R0),-(R1)
111324 014041 MOV -(R0),-(R1)
POP PS
111332 104055 SETFLG
111334 157162 KTIMBS ;KEEP TIME BASE
111336 000137 107526 C10XXX: JMP C10DON
111342 012701 157152 C10C5: MOV #TIMTMP,R1
111346 012700 157164 MOV #TIMBAS,R0
PUSH PS
111356 012737 000340 177776 MOV #PR7,PS ;TURN OFF INTERRUPTS
111364 012021 MOV (R0)+,(R1)+ ;COPY TIMTMP←TIMBAS
111366 012021 MOV (R0)+,(R1)+
111370 011011 MOV (R0),(R1)
POP PS
111376 005737 157162 TST KTIMBS ;ARE WE COUNTING TIMEBASE?
111402 001003 BNE 1$ ;JUMP IF YES
111404 005011 CLR (R1) ;NO. TIMEBASE NOT KEPT OR INVALID
111406 005041 CLR -(R1) ;RETURN ZERO.
111410 005041 CLR -(R1)
1$:
111412 012737 004000 147444 .IIF NE EPTREL, MOV #XEPT!PRTOFF,$TADSP ;SET ADDR MODE FOR NEXT EXDEP
111420 104104 EXAMT ;GET DEP ADDRESS FROM TO 11 WORD
111422 000447 $DTT11
111424 157144 TIMADR
111426 103644 BCS C10CER ;CAN'T READ ADDRESS
111430 012701 157144 MOV #TIMADR,R1
111434 042761 177774 000002 BIC #177774,2(R1) ;CLEAR ALL BUT BITS 18-19 (TIMADR+2)
111442 013702 157156 MOV TIMTMP+4,R2 ;GET HIGH ORDER TIME BASE
SR R2,3 ;SHIFT TO ALIGN BITS 23-35
111454 012700 147506 MOV #$DRAM+4,R0
111460 005010 CLR (R0)
111462 005040 CLR -(R0)
111464 010240 MOV R2,-(R0) ;$DRAM+0←BITS 23-35 OF HIGH WORD
111466 012737 024000 147444 MOV #EXVIRT!PRTOFF,$TADSP ;ADDRESS GIVEN IS EXEC VIRTUAL
111474 104107 DPOSVR ;SEND HIGH WORD
111476 103620 BCS C10CER
111500 012701 157144 MOV #TIMADR,R1 ;INCREMENT ADDRESS TO LOW WORD
111504 062721 000001 ADD #1,(R1)+
111510 005511 ADC (R1)
111512 042711 177774 BIC #177774,(R1)
111516 005741 TST -(R1)
111520 042737 177770 157156 BIC #177770,TIMTMP+4 ;CLEAR ALL BUT BITS 1-3
111526 012700 157152 MOV #TIMTMP,R0
111532 012737 024000 147444 MOV #EXVIRT!PRTOFF,$TADSP ;ADDRESS GIVEN IS EXEC VIRTUAL
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 145
CONS11 PAL[KL,SYS] Page 46.4 PDP-10 RUN TIME SUPPORT ;TENCMD CMD10T C10DON
111540 104107 DPOSVR
111542 103275 BCC C10XXX
111544 000137 111140 C10CR1: JMP C10CER
.IF DF CLKASB
111550 104055 C10C6: SETFLG ;ENABLE STORING TIME/DATE
111552 157142 TIMFLG
111554 004737 111600 JSR PC,RDCLK ;READ CLOCK INTO TIMTMP
111560 012737 004000 147444 .IIF NE EPTREL, MOV #XEPT!PRTOFF,$TADSP ;SET ADDR MODE FOR NEXT EXDEP
111566 104110 DPOSVT
111570 000446 $DTTIME
111572 157152 TIMTMP
111574 103763 BCS C10CR1 ;ERROR
111576 000657 BR C10XXX
;FORMAT OF DTTIME PDP10 WORD IS:
;BYTE (5)DAY (2)0 (5)HOUR (2)0 (6)MINUTE (4)MONTH,YEAR (2)0 (6)SECOND
RDCLK: PUSH R0
PUSH R1
PUSH R2
PUSH R3
111610 105777 766236 2$: TSTB @$CLKST
111614 100375 BPL 2$ ;MAKE SURE CLOCK IS READY
111616 017700 766222 MOV @$CLKMD,R0
111622 017701 766220 MOV @$CLKHM,R1
111626 017702 766216 MOV @$CLKSEC,R2
111632 027700 766206 CMP @$CLKMD,R0
111636 001364 BNE 2$
111640 027701 766202 CMP @$CLKHM,R1
111644 001361 BNE 2$
111646 027702 766176 CMP @$CLKSEC,R2
111652 001356 BNE 2$
111654 032702 001400 BIT #1400,R2 ;TEST LOW TWO YEAR BITS
111660 001407 BEQ 3$ ;BRANCH IF A LEAP YEAR
111662 020027 001035 CMP R0,#2*400+29. ;IS IT FEB 29?
111666 001004 BNE 3$ ;NO
111670 012777 001501 766146 MOV #3*400+1+100,@$CLKMD ;YES, SET TO MAR 1
111676 000744 BR 2$
111700 010003 3$: MOV R0,R3
SL R3,4
111712 042703 007777 BIC #7777,R3 ;LEAVE TOP 4 BITS (MONTH)
111716 050302 BIS R3,R2 ;MONTH/YEAR//SECONDS
111720 006000 ROR R0
111722 103002 BCC 1$
111724 052701 100000 BIS #100000,R1 ;LOW BIT OF DAY
111730 012703 157152 1$: MOV #TIMTMP,R3
111734 010223 MOV R2,(R3)+
111736 010123 MOV R1,(R3)+
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 146
CONS11 PAL[KL,SYS] Page 46.5 PDP-10 RUN TIME SUPPORT ;TENCMD CMD10T C10DON
111740 042700 177760 BIC #177760,R0 ;JUST KEEP LOW 4 BITS
111744 010013 MOV R0,(R3)
POP R3
POP R2
POP R1
POP R0
111756 000207 RTS PC
111760 000002 TCUINT: RTI ;INT FROM SETTING CLOCK
.ENDC ;DF CLKASB
.ENDC ;SAILVR
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 147
CONS11 PAL[KL,SYS] Page 47 PDP-10 RUN TIME SUPPORT ;TENCMD CMD10T C10DON
;PDP-10 SWITCH REGISTER
111762 013737 177570 157230 $TENSW: MOV SWR,$$SWR ;GET PDP-11 SWITCHES
111770 013737 157230 157234 MOV $$SWR,$SWS10+2
111776 012701 157232 MOV #$SWS10,R1 ;POSITION FOR 0 TO 15 OF
112002 012703 000004 MOV #4,R3 ;PDP-10 SWITCH REGISTER
112006 104146 PROL36
112010 012704 157234 MOV #$SWS10+2,R4 ;Bits 4:15 + xxxx of new stuff
112014 012705 157242 MOV #SWS10+2,R5 ;old switches.
112020 042714 000017 BIC #17,(R4) ;CLEAR 16-19 FROM NEW
112024 042715 177760 BIC #177760,(R5) ;CLEAR 4-15 FROM OLD
112030 052425 BIS (R4)+,(R5)+ ;INSERT BITS 4-15
112032 042714 177760 BIC #177760,(R4) ;CLEAR HI JUNK FROM NEW
112036 042715 000017 BIC #17,(R5) ;CLEAR 0-3 FROM OLD
112042 051415 BIS (R4),(R5) ;INSERT BITS 0-3
112044 105737 147710 TSTB TENRUN ;PDP-10 RUNNING ?
112050 001412 BEQ 1$ ;NO
.IF DF SAILVR
112052 005737 147442 TST SWTDEP ;DID PDP-10 ASK FOR SWITCHES?
112056 001407 BEQ 1$ ;NO. WELL, DON'T STORE UNTIL ASKED
.ENDC
112060 012737 004000 147444 .IIF NE EPTREL, MOV #XEPT!PRTOFF,$TADSP ;SET ADDR MODE FOR NEXT EXDEP
112066 104110 DPOSVT ;DEPOSIT PDP-10 SWITCH REGISTER
112070 000457 $DTSWR ;IN DTE20 COMM AREA
112072 157240 SWS10
112074 103402 BCS 2$ ;ERROR
112076 $TCX=.
1$: EXIT
112076 000137 124062 JMP $EXIT
2$: EXITERR ;RETURN
112102 000137 124034 JMP $EXITE
;PDP-10 LAST TYPED CHARACTER ROUTINE
112106 105737 147710 $TENCHR:TSTB TENRUN ;PDP-10 RUNNING ?
112112 001771 BEQ $TCX ;NO
112114 005737 150042 TST TENTTY ;TTY DEPOSIT ALLOWED ?
112120 001766 BEQ $TCX ;NO
PUSH R0
112124 012737 004000 147444 .IIF NE EPTREL, MOV #XEPT!PRTOFF,$TADSP ;SET ADDR MODE FOR NEXT EXDEP
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 148
CONS11 PAL[KL,SYS] Page 47.1 PDP-10 RUN TIME SUPPORT ;TENCMD CMD10T C10DON
112132 104106 DPOST ;YES, SEND LAST TYPED CHAR
112134 000454 $DTCHR
112136 150044 $TNCHR
POP R0
112142 000755 BR $TCX ;DON'T CARE IF FAILED
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 149
CONS11 PAL[KL,SYS] Page 48 PDP-10 PROGRAM COMMAND
.SBTTL PDP-10 PROGRAM COMMAND
112144 012700 777777 P10CMD: MOV #-1,R0 ;USE OUTPUT BUFFER
112150 104133 PRGCMD ;& PROGRAM COMMAND
112152 103430 BCS DIANF ;C-BIT SET, ERROR
112154 000424 BR DIAFND ;PASSED
.SBTTL "DIAMON" FILE SELECTION AND READ ROUTINES
112156 012701 150520 DIASEL: MOV #$INBUF,R1 ;PUT "P" & "SPACE" FIRST
112162 012721 020120 MOV #"P ,(R1)+ ;IN CASE ACT10 LOAD
112166 012700 150274 MOV #$OUTBF,R0 ;TRANSFER "DIAMON" FILE.EXT
112172 010037 150514 MOV R0,$OUTPT ;TO INPUT BUFFER
112176 004737 101612 JSR PC,$DIASX
112202 012737 150522 150736 MOV #$INBUF+2,$INPTC ;SET PICKUP POINTER
112210 104206 NAMEXT ;SETUP FILE NAME.EXT
112212 104055 SETFLG
112214 150754 LDCNTL ;SET LOAD CONTROL TO HELP
112216 104055 SETFLG
112220 151140 DIAFLG ;SET PROCESSING TO "DIAMON" MODE
112222 000137 133346 JMP DEVFIL ;GO LOOKUP & READ FIRST ASCII LINE
;RETURN HERE WHEN FILE FOUND
112226 005000 DIAFND: CLR R0 ;SET FOUND INDICATOR
112230 000137 110056 $DIAFX: JMP C10TIX ;USE 10 TTY INPUT ROUTINE
;RETURN HERE WHEN FILE NOT FOUND
112234 012700 777777 DIANF: MOV #-1,R0 ;SET NOT FOUND INDICATOR
112240 000773 BR $DIAFX
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 150
CONS11 PAL[KL,SYS] Page 49 "DIAMON" FILE SELECTION AND READ ROUTINES
;"DIAMON" FILE READ
112242 004737 122042 DIARD: JSR PC,$TI36C ;CLEAR 36 BIT WORD STORAGE
112246 023737 150736 150740 CMP $INPTC,$INPTR ;ANY CURRENT INPUT ?
112254 003402 BLE DIARNL ;NO
112256 000137 140422 1$: JMP ACTLD2 ;GO READ NEXT INPUT LINE
112262 DIARNL=. ;RETURN HERE WITH NEW LINE SETUP
112262 012702 000005 2$: MOV #5,R2 ;5 ASCII CHARS PER 36 BIT WORD
112266 023737 150736 150740 3$: CMP $INPTC,$INPTR ;EOL ?
112274 003014 BGT 4$ ;YES
112276 117700 036434 MOVB @$INPTC,R0 ;GET FILE LINE CHAR
112302 005237 150736 INC $INPTC
112306 012701 000007 MOV #7,R1
112312 004737 121764 JSR PC,SHFT36 ;SHIFT 36 BIT WORD LEFT 7
112316 150037 147502 BISB R0,$DRAM ;INSERT NEW ASCII BYTE
112322 005302 DEC R2 ;DONE 5 CHARS ?
112324 003360 BGT 3$ ;NOT YET
112326 005001 4$: CLR R1 ;LEFT JUSTIFY FOR PDP-10 ASCII
112330 004737 121764 JSR PC,SHFT36
112334 012737 004000 147444 .IIF NE EPTREL, MOV #XEPT!PRTOFF,$TADSP ;SET ADDR MODE FOR NEXT EXDEP
112342 104110 DPOSVT ;LOAD INTO FROM 11 WORD
112344 000450 $DTF11
112346 147502 $DRAM
112350 103012 BCC 6$ ;OK
5$: PMSG <?DIAMON XFER>
112352 104025 $PMSG
112354 146042 $$CLIT
112356 000137 100004 JMP $CNTLC
112362 DIAEOF=. ;DIAMON READ END-OF-FILE
112362 012737 004000 147444 .IIF NE EPTREL, MOV #XEPT!PRTOFF,$TADSP ;SET ADDR MODE FOR NEXT EXDEP
112370 104111 D10MON ;SET FROM 11 WORD -1
112372 000450 $DTF11
112374 103766 BCS 5$ ;ERROR
112376 000137 107526 6$: JMP C10DON ;TELL 10 TO CONTINUE
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 151
CONS11 PAL[KL,SYS] Page 50 PDP-11 CONSOLE FUNCTIONS
.SBTTL PDP-11 CONSOLE FUNCTIONS
;START PDP11 AT ADDRESS GIVEN
112402 104016 .SE: TTISDL
112404 103405 BCS 2$ ;NON-NUMBER
112406 104200 1$: TTOCTE ;READ AN OCTAL ADDRESS
112410 010037 157200 4$: MOV R0,SEADR ;GO TO ADDRESS IN R0
112414 000137 113250 JMP SRT11
112420 122700 000104 2$: CMPB #'D,R0 ;"D", START DIAGNOSTIC
112424 001406 BEQ 3$
112426 122700 000103 CMPB #'C,R0 ;"C", START CONSOLE
112432 001145 BNE $$CMDE
112434 012700 100000 MOV #PRGSRT,R0
112440 000763 BR 4$
112442 012700 003000 3$: MOV #3000,R0
112446 000760 BR 4$
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 152
CONS11 PAL[KL,SYS] Page 51 PDP-11 CONSOLE FUNCTIONS
;EXAMINE ELEVEN AT ADDRESS GIVEN
112450 012705 000001 .EE: MOV #1,R5
112454 000401 BR .EEB
112456 005005 .EB: CLR R5
112460 012702 147746 .EEB: MOV #.EADR,R2
112464 005003 CLR R3
112466 104016 TTISDL
112470 103445 BCS 6$ ;NON-NUMBER
112472 104010 TTCOCT ;READ AN OCTAL ADDRESS
112474 010001 MOV R0,R1
112476 010012 MOV R0,(R2) ;SAVE ADR FOR DEPOSIT
112500 104015 TTIBRK ;GET BREAK CHAR
112502 103517 BCS $$PARA
112504 122700 000054 CMPB #COMMA,R0
112510 001004 BNE 2$
112512 005203 INC R3 ;SET MULTIPLE PRINT FLAG
112514 104044 PNORML
112516 104010 TTCOCT ;GET LAST ADDRESS
112520 010004 MOV R0,R4 ;SAVE END ADR
112522 040501 2$: BIC R5,R1 ;IF WORD, MAKE EVEN
112524 010100 21$: MOV R1,R0
112526 010112 MOV R1,(R2) ;SAVE ADDRESS
112530 104035 PNTOCT ;PRINT ADDRESS
112532 104033 PSLASH
112534 005705 1$: TST R5 ;BYTE ?
112536 001403 BEQ 3$ ;YES
112540 011100 MOV (R1),R0
112542 104035 PNTOCT ;PRINT CONTENTS OF ADDRESS
112544 000404 BR 4$
112546 111100 3$: MOVB (R1),R0
112550 042700 177400 BIC #177400,R0
112554 104036 PNTOCS ;PRINT BYTE CONTENTS
112556 005703 4$: TST R3
112560 001406 BEQ 5$
112562 104031 PCRLF
112564 020104 CMP R1,R4
112566 103003 BHIS 5$
112570 005201 INC R1 ;INCREMENT ADDRESS
112572 060501 ADD R5,R1 ;IF WORD, INC BY 2
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 153
CONS11 PAL[KL,SYS] Page 51.1 PDP-11 CONSOLE FUNCTIONS
112574 000752 BR 2$
112576 104031 5$: PCRLF
112600 000137 100230 JMP $KONSL
112604 001407 6$: BEQ 7$ ;UPARROW
112606 102002 BVC 61$ ;NONE
112610 005212 INC (R2) ;EXAMINE NEXT 11 ADDRESS
112612 060512 ADD R5,(R2)
112614 011201 61$: MOV (R2),R1
112616 005237 150736 INC $INPTC ;ADVANCE PAST TERMINATOR
112622 000737 BR 2$
112624 005312 7$: DEC (R2)
112626 160512 SUB R5,(R2)
112630 000771 BR 61$
;ZERO ELEVEN
112632 104200 .ZE: TTOCTE ;GET START ADDRESS
112634 010005 MOV R0,R5
112636 104010 TTCOCT ;GET END ADDRESS
112640 005025 1$: CLR (R5)+ ;ZERO 11
112642 020500 CMP R5,R0 ;COMPLETED ?
112644 101775 BLOS 1$ ;NO
112646 000137 100014 JMP $CONSL
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 154
CONS11 PAL[KL,SYS] Page 52 PDP-11 CONSOLE FUNCTIONS
;DEPOSIT ELEVEN DATA
112652 012705 000001 .DE: MOV #1,R5 ;DEPOSIT 11 WORD
112656 000401 BR .DEB
112660 005005 .DB: CLR R5 ;DEPOSIT 11 BYTE
112662 012702 147746 .DEB: MOV #.EADR,R2
112666 104016 TTISDL
112670 103421 BCS 5$ ;NON-NUMBER
112672 104010 TTCOCT ;READ OCTAL ADDRESS
112674 010001 1$: MOV R0,R1
112676 005705 TST R5
112700 001402 BEQ 2$
112702 030500 BIT R5,R0
112704 001016 BNE $$PARA ;WORD, ODD ADDRESSES ILLEGAL
112706 104016 2$: TTISDL
112710 103416 BCS $$CMDE
112712 104010 TTCOCT ;GET DATA
112714 010112 MOV R1,(R2)
112716 005705 TST R5 ;BYTE ?
112720 001402 BEQ 3$
112722 010011 MOV R0,(R1) ;STOW IT
112724 000401 BR 4$
112726 110011 3$: MOVB R0,(R1) ;STOW 11 BYTE
112730 000137 100230 4$: JMP $KONSL
112734 102004 5$: BVC $$CMDE ;IF COLON, USE PREVIOUS EXAMINE ADDRESS
112736 011200 MOV (R2),R0
112740 000755 BR 1$
112742 000137 113356 $$PARA: JMP $PARA
112746 000137 113364 $$CMDE: JMP $CMDE
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 155
CONS11 PAL[KL,SYS] Page 53 KL10 MONITOR & ACT10 COMMAND ROUTINES
.SBTTL KL10 MONITOR & ACT10 COMMAND ROUTINES
112752 104055 $VERIFY:SETFLG
112754 147750 VERIFY
112756 104044 PNORML
112760 005037 150752 CLR LDOVRD ;CLEAR OVERRIDE
112764 000430 BR $PROG1
112766 012737 000001 150752 $LDT: MOV #1,LDOVRD ;LOAD TEN, OVERRIDE EXT
112774 000422 BR $PROG2
112776 012737 000002 150752 $LDE: MOV #2,LDOVRD ;LOAD ELEVEN, OVERRIDE EXT
113004 000416 BR $PROG2
113006 012737 000003 150752 $LDR: MOV #3,LDOVRD ;LOAD RAM, OVERRIDE EXT
113014 000412 BR $PROG2
113016 012737 000006 150752 $LDB: MOV #6,LDOVRD ;LOAD ELEVEN BIN, OVERRIDE EXT
113024 000406 BR $PROG2
113026 012737 000007 150752 $LDD: MOV #7,LDOVRD ;LOAD DSKDMP BOOTSTRAP INTO KLDCP,OVERRIDE EXT (D10)
113034 000402 BR $PROG2
113036 005037 150752 $PROG: CLR LDOVRD ;CLEAR OVERRIDE
113042 005037 147750 $PROG2: CLR VERIFY
113046 005037 150754 $PROG1: CLR LDCNTL ;CLEAR LOAD CONTROL FLAG
113052 005037 150746 CLR SRTFLG ;CLEAR SELF START FLAG
113056 105037 077777 CLRB CONSOL-1 ;OVERLAY INUSE INDICATOR
113062 000430 BR $HELP1 ;GO LOAD PROGRAM
113064 104055 $JFILE: SETFLG
113066 147640 JFILEF ;SET DOUBLE INDIRECT FLAG
113070 005037 147634 CLR PRGRUN ;CLEAR PROGRAM RUNNING FLAG
113074 012737 010000 147642 MOV #TOUTBF+5000,IFINP ;SETUP STORAGE POINTER
113102 000403 BR $IIX
113104 012737 003000 147642 $IFILE: MOV #TOUTBF,IFINP ;SETUP STORAGE POINTER
113112 005037 152234 $IIX: CLR PCMDFLG ;CLEAR PROGRAM COMMAND
113116 104055 SETFLG
113120 147644 IFILEF ;SET INDIRECT FILE FLAG
113122 005077 034514 CLR @IFINP ;CLEAR 1ST BUFFER WORD
113126 105037 077777 CLRB CONSOL-1 ;OVERLAY INUSE INDICATOR
113132 005037 150752 $HELP: CLR LDOVRD ;CLEAR LOAD OVERRIDE FOR H,I,J
113136 104055 SETFLG
113140 150754 LDCNTL ;SET LOAD CONTROL TO "HELP"
113142 104044 PNORML
.IF DF MONASB
TST DEVTYP
BPL $HELP1
JMP ACTFIL ;ACT10 HELP
.ENDC
113144 000137 130312 $HELP1: JMP DVLOAD ;RP04/DECTAPE/FLOPPY HELP
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 156
CONS11 PAL[KL,SYS] Page 54 KL10 MONITOR & ACT10 COMMAND ROUTINES
.IF DF MONASB
$AT: TTITRM
SETFLG
DEVTYP ;SET ACT10 MODE
COMCLR ;CLEAR COMMUNICATIONS
BR $DTX
.ENDC
113150 005037 157306 $DT: CLR FLOPPY
113154 104016 TTISDL
113156 103413 BCS $DTC ;LETTER
113160 104017 TTISDO ;GET UNIT SELECTION DIGIT
113162 020027 000007 CMP R0,#7 ;MUST BE 0 TO 7
113166 003076 BGT $CMDE
113170 000300 SWAB R0 ;PUT IN PROPER PLACE FOR TC11
113172 010037 157276 MOV R0,DTUNIT ;SAVE IT
113176 005037 157310 $RXX: CLR DEVTYP ;SET DECTAPE MODE
113202 000137 100230 $DTX: JMP $KONSL
.IF DF RXASB
$RX: SETFLG
FLOPPY
TTISDL
BCS $DTC ;LETTER
TTISDO ;GET SELECTION DIGIT
CMP R0,#1 ;MUST BE EITHER 0 OR 1
BGT $CMDE
BNE 1$
MOV #RXU1,R0
1$: MOV R0,RXUNIT ;SAVE FOR RX11/RX01 FLOPPY
BR $RXX
.ENDC ;IF DF RXASB
$DTC:
.IF DF UTLASB
CMP #"CO,$INBUF+2 ;IS COMMAND 'DTCOPY'/'RXCOPY' ?
BNE 1$
CMP #"PY,$INBUF+4
BNE 1$
JSR PC,$KLUCK ;UTILITY IN CORE ?
TST FLOPPY
BEQ 2$
JMP @RXCOPY ;FLOPPY COPY
2$: JMP @DTCOPY ;YES
.ENDC
113206 000137 100574 1$: JMP $CMDER
113212 005237 150736 $GO: INC $INPTC
113216 013700 157202 $$GO: MOV PGOCTL,R0 ;GO, START PROGRAM
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 157
CONS11 PAL[KL,SYS] Page 54.1 KL10 MONITOR & ACT10 COMMAND ROUTINES
113222 000170 113226 JMP @LDSTRT(R0)
113226 113242 LDSTRT: SRT11X
113230 113324 SRT10
113232 104022 $JC: TTITRM
113234 104055 SETFLG ;SET J FILE FLAG TO CONTINUE
113236 147640 JFILEF ;INTERRUPTED J FILE PROCESS
113240 000760 BR $DTX
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 158
CONS11 PAL[KL,SYS] Page 55 KL10 MONITOR & ACT10 COMMAND ROUTINES
113242 013737 157204 157200 SRT11X: MOV PGOADR,SEADR
113250 005737 157200 SRT11: TST SEADR
113254 001417 BEQ 1$ ;IF ADR 0, START AT 3000
113256 032737 000001 157200 BIT #1,SEADR
113264 001031 BNE ADRERR ;ODD ADDRESSES NOT ALLOWED
113266 004737 115154 2$: JSR PC,$CMCLR ;CLEAR COMMON STORAGE
113272 005037 147644 CLR IFILEF ;END INDIRECT PROCESS
113276 104055 SETFLG
113300 147634 PRGRUN
113302 012700 157774 MOV #STACK-2,R0 ;PASS STACK BASE ADR IN R0
113306 010006 MOV R0,SP ;RESET STACK
113310 000177 043664 JMP @SEADR ;START 11 PROGRAM AT LOAD ADDRESS
113314 012737 003000 157200 1$: MOV #3000,SEADR
113322 000761 BR 2$
113324 012700 157212 SRT10: MOV #TGOADR+2,R0
113330 012701 157206 MOV #PGOADR+2,R1 ;PUT LOAD ADR IN 10 GO ADR
113334 011110 MOV (R1),(R0)
113336 014140 MOV -(R1),-(R0)
113340 000137 106204 JMP $$$ST ;GO TO 10 START ROUTINE
.LIF NDF MONASB
113344 000137 100014 $COMNT: JMP $CONSL
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 159
CONS11 PAL[KL,SYS] Page 56 KL10 MONITOR & ACT10 COMMAND ROUTINES
.IF DF MONASB
;ACT10 TIME REQUEST
$TIME: TTBTRM
TST DEVTYP
BPL $TIME1 ;ONLY LEGAL IN ACT10 MODE
COMENQ ;REQUEST APT10 SERVICE
MOV #$INBUF,R0
COMCMD ;SEND COMMAND
$PMSG ;PRINT INPUT LINE
CINBF
COMCLR
$TIME3: JMP $CONSL
$TIME1: JMP NONACT ;NON ACT10
$LOGO:
$LOGIN: TST DEVTYP ;ONLY LEGAL IN ACT10 MODE
BPL $TIME1
TTITRM
COMENQ ;REQUEST SERVICE
MOV #$INBUF,R0
COMCMD ;SEND COMMAND
COMEOT
BR $TIME3
$COMNT: TST DEVTYP ;ACT10 MODE ?
BPL 1$ ;NO, LOCAL ONLY
COMENQ ;REQUEST APT10 SERVICE
MOV #$INBUF,R0
COMCMD ;SEND MESSAGE
COMEOT
1$: BR $TIME3 ;BACK TO CONSOLE
$BOOT:
$SCRPT:
$MSCP:
$GSCP:
$BOOTT: JMP $CMDER
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 160
CONS11 PAL[KL,SYS] Page 56.1 KL10 MONITOR & ACT10 COMMAND ROUTINES
.ENDC ;END .IF DF MONASB
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 161
CONS11 PAL[KL,SYS] Page 57 KL10 MONITOR & ACT10 COMMAND ROUTINES
ADRERR: PMSG <?ADR>
113350 104025 $PMSG
113352 146057 $$CLIT
113354 000405 BR COMNER
$PARA: PMSG <?PARAM>
113356 104025 $PMSG
113360 146064 $$CLIT
113362 000402 BR COMNER
113364 000137 100574 $CMDE: JMP $CMDER
.IF DF MONASB
NONACT: PMSG <?ACT10>
BR COMNER
NORESP: PMSG <?RESPONSE>
.ENDC
113370 000137 100004 COMNER: JMP $CNTLC
;REINITIALIZE SYSTEM
113374 005037 157316 .RI: CLR $ONETM
113400 000137 100000 JMP START
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 162
CONS11 PAL[KL,SYS] Page 58 LINE PRINTER SELECTION ROUTINE
.SBTTL LINE PRINTER SELECTION ROUTINE
.IF DF LPASB
$LPT: PMSG <LP, Y OR N ? - ←>
TTILIN
TTIYES
BCS $LPT ;JUNK
BMI 10$ ;NO
MOV #NOLP,ERRVEC ;DO WE HAVE A LINE PRINTER CONTROLLER ?
MOV $LPS,R0
TST (R0)
TST R0
BNE 1$ ;LP11
MOV #LP20A,R0
TST (R0)
TST R0
BNE 2$ ;LP20A
MOV #LP20B,R0
TST (R0)
TST R0
BNE 2$ ;LP20B
MOV #$TIMOT,ERRVEC
PMSG <?NO LPT>
JMP $CNTLC
1$: CLR LPTYPE ;LP11 - TYPE = 0
BR 3$
2$: MOV R0,LPTYPE ;LP20 - TYPE = CONTROLLER BASE ADDRESS
3$: MOV #$TIMOT,ERRVEC
SETFLG
LPTFLG
TST LPTYPE
BNE 5$
TST @$LPS ;LP11 - LPT OK ?
BMI 20$ ;NO
4$: JMP $CONSL
5$: JSR PC,LP20INI ;INITIALIZE LP20
BCS 20$ ;ERROR
BR 4$
10$: CLR LPTFLG ;TURN OFF LINE PRINTER
BR 4$
20$: PMSG <?LP ERR\>
BR $LPT
NOLP: CLR R0 ;NO LP CONTROLLER BUS TRAP
RTI
.SBTTL LP20 INITIALIZATION ROUTINE
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 163
CONS11 PAL[KL,SYS] Page 58.1 LINE PRINTER SELECTION ROUTINE
LP20INI:MOV LPTYPE,R5 ;SETUP BASE ADDRESS
MOV #LPLINI!LPRERR,(R5) ;CLEAR LP20
MOV #VFUDAT,R0 ;SETUP VFU BUFFER
MOV R0,LPBSAD(R5) ;SETUP BUFFER ADDRESS
MOV #037756,(R0)+ ;VFU LOAD CODE & ALL CHANS
MOV #77,(R0)+
MOV #100,R1 ;SET FOR 64 LINES ON PAGE
1$: CLR (R0)+
DEC R1
BNE 1$
MOV #167400,(R0) ;VFU STOP LOAD CODE
MOV #-206,LPBCTR(R5) ;206 BYTE XFER
MOV #LPVLOD!LPPENB!LPGO,(R5) ;VFU LOAD & GO
JSR PC,LP20DN ;WAIT FOR DONE
BCS 3$ ;ERROR
CLR LPCBUF(R5) ;CLEAR LP20 RAM
MOV #LPLINI!LPRERR,(R5)
MOV #-1000,R0 ;LOCATION COUNT
MOVB #LPPENB,(R5) ;PARENB & NOT GO
2$: CLR LPRAMD(R5) ;CLEAR
INC LPCBUF(R5) ;INCREMENT ADDRESS
INC R0 ;COUNT IT
BNE 2$ ;IF NOT DONE, GO BACK
CLC ;COMPLETED, C-BIT CLEAR RETURN
RTS PC
3$: SEC ;ERROR, C-BIT SET RETURN
RTS PC
.ENDC ;IF DF LPASB
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 164
CONS11 PAL[KL,SYS] Page 59 CONSOLE TELETYPE FUNCTIONS
.SBTTL CONSOLE TELETYPE FUNCTIONS
113404 012705 150016 $TP: MOV #$TPLIN,R5 ;SET TTY PAGE LENGTH
113410 000402 BR $TPW
113412 012705 150020 $TW: MOV #$PGWID,R5 ;SET TTY PAGE WIDTH
113416 104016 $TPW: TTISDL
113420 103414 BCS $PARAM
113422 104011 TTIDEC ;SPECIFIED IN DECIMAL
113424 103412 BCS $DECN ;WASNT A DECIMAL NUMBER
113426 010015 MOV R0,(R5) ;SET IT UP
113430 000137 100014 $TPWF: JMP $CONSL ;RETURN TO CONSOLE FOR NEXT COMMAND
;TTY FILL CHARACTER PARAMETER
113434 104017 $TF: TTISDO
113436 020027 000005 CMP R0,#5 ;CHECK FILL PARAMETER UPPER LIMIT
113442 003003 BGT $FILPL
113444 010037 147776 MOV R0,$TTYFL ;SET TTY FILL PARAMETER
113450 000767 BR $TPWF
;MESSAGES TO OPERATOR
$DECN:
$FILPL:
$OCTN:
113452 000137 113356 $PARAM: JMP $PARA
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 165
CONS11 PAL[KL,SYS] Page 60 KLINIK FIELD SERVICE REMOTE DIAGNOSTICS ENABLE
.SBTTL KLINIK FIELD SERVICE REMOTE DIAGNOSTICS ENABLE
.IF NDF TELASB
.KLINIK:CMP #"IN,$INBUF+2
BNE 2$
CMP #"IK,$INBUF+4
BNE 2$
TST DL11EFLG ;PRESENTLY ENABLED ?
BEQ 1$ ;NO
KLUNK=.
CLR DL11EFLG ;YES, CLEAR IT
PMSG <KLINIK CLEARED>
JMP $CNTLC
1$: CLR @$FSTKS ;INITIALIZE
BIS #DLDTR!DLRTS,@$FSTKS ;SET DATA TERMINAL READY
BIT #DLCTS,@$FSTKS ;DO WE HAVE CLEAR TO SEND ?
BEQ FSDISC ;NO
COM DL11EFLG ;ENABLE KLINIK
PMSG <KLINIK ENABLED>
JMP $CNTLC
2$: JMP $CMDER
;DL11E DISCONNECT, CLEAR TO SEND NOT SET
FSDISC: CLR DL11EFLG
PMSG <\DL11E NOT CLR TO SEND, >
BR KLUNK
.ENDC ;IF NDF TELASB
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 166
CONS11 PAL[KL,SYS] Page 61 KLINIK FIELD SERVICE REMOTE DIAGNOSTICS ENABLE
;⊗ FSRLEN FSRINT FSINT1 FSXIT FSINT2 FSXITC FSINTA FSINT3 FSINT4 FSXITA FSIN4R FSIN4D FSIN4E FSIN4W HANGUP HANGU1 FSHNG1 FSIN
T5 FSIN5A FSTINT FSTYP FSTYP1 FSTYP2 FSCLKR FSMSG FSLOSM PWORD PWLEN $HU
.SBTTL FIELD SERVICE TELETYPE INTERRUPT HANDLER
.IF DF TELASB
000012 FSRLEN==10. ;10 CHARACTER FSRBUF
;TRAP HERE WHEN DATASET INTERRUPT OCCURS
FSRINT: PUSH R0
PUSH R1
113462 017700 764342 MOV @$FSTKS,R0 ;GET THE STATUS
113466 013701 152300 MOV FSSTATE,R1
113472 001401 BEQ FSINT1 ;FIRST INTERRUPT
113474 000111 JMP @R1
113476 032700 040000 FSINT1: BIT #DLRI,R0 ;TEST FOR RING INDICATION
113502 001411 BEQ FSXIT ;NOPE
113504 012737 113534 152300 MOV #FSINT2,FSSTATE ;SET DISPATCH FOR NEXT INT
113512 012700 000074 MOV #60.,R0
113516 012701 114050 MOV #HANGU1,R1
113522 004737 114264 JSR PC,FSCLKR ;SET CLOCK REQUEST TO HANG UP IN ONE MINUTE
FSXIT: POP R1
POP R0
113532 000006 RTT
113534 032700 010000 FSINT2: BIT #DLCD,R0 ;TEST CARRIER DETECT
113540 001772 BEQ FSXIT ;NOPE
113542 032700 020000 BIT #DLCTS,R0 ;TEST CLEAR TO SEND
113546 001767 BEQ FSXIT ;NOPE
113550 012737 113572 152300 MOV #FSINTA,FSSTATE ;OK, HAVE BOTH
113556 005777 764250 FSXITC: TST @$FSTKB ;CLEAR INPUT DONE BY REFERENCING BUFFER
113562 052777 000100 764240 BIS #DLRIE,@$FSTKS ;SET READER INTERRUPT ENABLE
113570 000756 BR FSXIT ;wait now for user to type something
;here after user typed some character (any character)
113572 012737 113626 152300 FSINTA: MOV #FSINT3,FSSTATE ;ignore input during type out
113600 012701 114434 MOV #FSMSG,R1
113604 004737 114210 JSR PC,FSTYP ;TYPE OUT GREETING MESSAGE
113610 012737 152262 152260 MOV #FSRBUF,FSRPTR
113616 012737 113636 152300 MOV #FSINT4,FSSTATE
113624 000754 BR FSXITC ;wait for user to type char of password
113626 032700 020000 FSINT3: BIT #DLCTS,R0 ;MAKE SURE WE HAVE CLEAR TO SEND
113632 001335 BNE FSXIT
113634 000502 BR HANGUP
113636 032700 020000 FSINT4: BIT #DLCTS,R0
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 167
CONS11 PAL[KL,SYS] Page 61.1 FIELD SERVICE TELETYPE INTERRUPT HANDLER
113642 001477 BEQ HANGUP ;HANGUP IF CLEAR TO SEND IS GONE
113644 032700 000200 BIT #DLRD,R0 ;TEST INPUT DONE
113650 001726 BEQ FSXIT ;SPURIOUS
113652 017701 764154 MOV @$FSTKB,R1 ;GET THE CHARACTER
113656 042701 177600 BIC #177600,R1 ;ignore parity
113662 020127 000015 CMP R1,#15
113666 001426 BEQ FSIN4D ;Return is end of password
113670 020127 000012 CMP R1,#12
113674 001423 BEQ FSIN4D ;Linefeed is end of password
113676 020127 000177 CMP R1,#177
113702 001411 BEQ FSIN4R ;Rubout allows you to correct previous char
113704 023727 152260 152274 CMP FSRPTR,#FSRBUF+FSRLEN
113712 103305 BHIS FSXIT ;NO MORE ROOM
113714 110177 036340 MOVB R1,@FSRPTR ;STORE THE CHARACTER
113720 005237 152260 INC FSRPTR
113724 000700 FSXITA: BR FSXIT
113726 023727 152260 152262 FSIN4R: CMP FSRPTR,#FSRBUF
113734 001773 BEQ FSXITA
113736 005337 152260 DEC FSRPTR
113742 000770 BR FSXITA
113744 042777 000100 764056 FSIN4D: BIC #DLRIE,@$FSTKS ;CLEAR RECEIVER INTERRUPT ENB
113752 013700 152260 MOV FSRPTR,R0
113756 162700 152262 SUB #FSRBUF,R0
113762 020027 000004 CMP R0,#PWLEN
113766 001021 BNE FSIN4W ;TYPED WRONG AMOUNT
113770 012700 152262 MOV #FSRBUF,R0
113774 012701 114472 MOV #PWORD,R1
114000 122021 FSIN4E: CMPB (R0)+,(R1)+
114002 001013 BNE FSIN4W ;WRONG
114004 020037 152260 CMP R0,FSRPTR
114010 103773 BLO FSIN4E ;MORE
114012 012737 114130 152300 MOV #FSINT5,FSSTATE
114020 005037 152254 CLR FSCLKA ;FLUSH THE AUTO DESTRUCT CLOCK REQUEST
114024 005237 152256 INC FSFLG ;WIN
114030 000735 BR FSXITA
114032 012701 114460 FSIN4W: MOV #FSLOSM,R1
114036 004737 114210 JSR PC,FSTYP
114042 004737 114050 HANGUP: JSR PC,HANGU1
114046 000726 BR FSXITA
114050 012777 000004 763752 HANGU1: MOV #DLRTS,@$FSTKS ;HANG UP DATASET (KEEP REQUEST TO SEND AS FLAG)
114056 005077 763752 CLR @$FSTPS ;FLUSH TYPEOUT
114062 005037 152300 CLR FSSTATE
114066 005037 152256 CLR FSFLG
PUSH R0
PUSH R1
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 168
CONS11 PAL[KL,SYS] Page 61.2 FIELD SERVICE TELETYPE INTERRUPT HANDLER
114076 012700 000002 MOV #2,R0
114102 012701 114120 MOV #FSHNG1,R1
114106 004737 114264 JSR PC,FSCLKR ;PLANT FS CLOCK REQUEST FOR 2 SECONDS FROM NOW
POP R1
POP R0
114116 000207 RTS PC
114120 012777 000046 763702 FSHNG1: MOV #DLDTR!DLRTS!DLDIE,@$FSTKS ;REENABLE DATASET
114126 000207 RTS PC
114130 032700 020000 FSINT5: BIT #DLCTS,R0
114134 001406 BEQ FSIN5A
114136 032700 010000 BIT #DLCD,R0
114142 001403 BEQ FSIN5A
114144 005037 152254 CLR FSCLKA ;FLUSH DESTRUCT SEQUENCE
114150 000665 BR FSXITA
114152 012700 000005 FSIN5A: MOV #5.,R0 ;START 5 SECOND TIMEOUT IF NO CLEAR TO SEND ...
114156 012701 114050 MOV #HANGU1,R1 ; ... OR NO CARRIER DETECT
114162 004737 114264 JSR PC,FSCLKR ;PLANT AUTO DESTRUCT CLOCK REQUEST
114166 000656 BR FSXITA
FSTINT: PUSH R0
PUSH R1
114174 105777 763634 TSTB @$FSTPS ;TEST TRANSMITTER READY
114200 001651 BEQ FSXITA ;SPURIOUS INT
114202 013701 152276 MOV FSTPTR,R1
114206 000407 BR FSTYP1
114210 005077 763620 FSTYP: CLR @$FSTPS ;CLEAR TRANSMITTER STATUS
114214 052777 000100 763612 BIS #DLTIE,@$FSTPS ;SET TRANSMIT INTERRUPT ENABLE
POP FSTYPR ;SAVE RETURN ADDRESS
114226 112100 FSTYP1: MOVB (R1)+,R0 ;GET NEXT CHARACTER
114230 001411 BEQ FSTYP2 ;END OF STRING
114232 010077 763600 MOV R0,@$FSTPB ;SEND CHARACTER
114236 010137 152276 MOV R1,FSTPTR ;SAVE POINTER TO TEXT
114242 032777 020000 763560 BIT #DLCTS,@$FSTKS
114250 001674 BEQ HANGUP
114252 000624 BR FSXITA
114254 005077 763554 FSTYP2: CLR @$FSTPS ;CLEAR XMTR STATUS AGAIN
114260 000177 036010 JMP @FSTYPR ;RETURN TO CALLER
;CALL WITH # SECONDS IN R0, ADDRESS IN R1
FSCLKR: PUSH R2
PUSH R3
PUSH R1
114272 010002 MOV R0,R2 ;CONVERT R0 TO 60THS
114274 005001 CLR R1
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 169
CONS11 PAL[KL,SYS] Page 61.3 FIELD SERVICE TELETYPE INTERRUPT HANDLER
000006 .REPT 6
ASL R1
ASL R0
ADC R1
.ENDR ;R1:R0 = 64 * ORIGINAL R0
114276 006301 ASL R1
114300 006300 ASL R0
114302 005501 ADC R1
114304 006301 ASL R1
114306 006300 ASL R0
114310 005501 ADC R1
114312 006301 ASL R1
114314 006300 ASL R0
114316 005501 ADC R1
114320 006301 ASL R1
114322 006300 ASL R0
114324 005501 ADC R1
114326 006301 ASL R1
114330 006300 ASL R0
114332 005501 ADC R1
114334 006301 ASL R1
114336 006300 ASL R0
114340 005501 ADC R1
114342 005003 CLR R3
000002 .REPT 2
ASL R3
ASL R2
ADC R3
.ENDR ;R3:R2 = 4 * ORIGINAL R0
114344 006303 ASL R3
114346 006302 ASL R2
114350 005503 ADC R3
114352 006303 ASL R3
114354 006302 ASL R2
114356 005503 ADC R3
114360 160200 SUB R2,R0
114362 005601 SBC R1
114364 160301 SUB R3,R1 ;R1:R0 GETS 60 * ORIGINAL R0
114366 005002 CLR R2
114370 063700 157172 ADD TIM11,R0
114374 005501 ADC R1
114376 063701 157174 ADD TIM11+2,R1
114402 005502 ADC R2
114404 063702 157176 ADD TIM11+4,R2 ;R2:R1:R0 HAVE NEW TIME
114410 012703 152246 MOV #FSRTIM,R3 ;STORE IN CLOCK REQUEST TIME WORDS
114414 010023 MOV R0,(R3)+
114416 010123 MOV R1,(R3)+
114420 010213 MOV R2,(R3)
POP FSCLKA
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 170
CONS11 PAL[KL,SYS] Page 61.4 FIELD SERVICE TELETYPE INTERRUPT HANDLER
POP R3
POP R2
114432 000207 RTS PC
114434 015
114435 012 FSMSG: .ASCIZ /
114436 127
114437 101
114440 111
114441 124
114442 123
114443 040
114444 160
114445 141
114446 163
114447 163
114450 167
114451 157
114452 162
114453 144
114454 040
114455 075
114456 040
114457 000
WAITS password = /
114460 015
114461 012 FSLOSM: .ASCIZ /
114462 127
114463 162
114464 157
114465 156
114466 147
114467 015
114470 012 Wrong
114471 000
/
PWORD: ;XLISTED OF COURSE
000004 PWLEN==.-PWORD
114476 .EVEN
;HU command to KLDCP
114476 104022 $HU: TTITRM
PMSG <\BYE\>
114500 104025 $PMSG
114502 146073 $$CLIT
114504 004737 114050 JSR PC,HANGU1
114510 005037 147776 CLR $TTYFL ;CLEAR PADDING AMOUNT
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 171
CONS11 PAL[KL,SYS] Page 61.5 FIELD SERVICE TELETYPE INTERRUPT HANDLER
114514 000137 100014 JMP $CONSL
.ENDC ;IF DF TELASB
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 172
KLDCP PAL[KL,SYS] Page 5.3 FIELD SERVICE TELETYPE INTERRUPT HANDLER
;breakpoints
.LIF DF BPTASB
.INSRT BPNT11.PAL
;subroutines, EMT dispatch, Initialization
.INSRT SUB11.PAL
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 173
SUB11 PAL[KL,SYS] Page 1 FIELD SERVICE TELETYPE INTERRUPT HANDLER
COMMENT ⊗ VALID 00047 PAGES
C REC PAGE DESCRIPTION
C00001 00001
C00005 00002 .SBTTL BASIC INITIALIZATION ROUTINE, 19-AUG-75
C00012 00003 .SBTTL SET EOP INTERVAL TALLY, ERROR EOP
C00015 00004 .SBTTL ERROR HALT
C00018 00005 .SBTTL PRINT ASCIZ MESSAGE (PNTAL)
C00020 00006 .SBTTL PRINT BUFFER LOAD ROUTINE
C00022 00007 .SBTTL TELETYPE PRINT OUTPUT ROUTINE
C00024 00008 .SBTTL TELETYPE DRIVER
C00028 00009 .SBTTL LINE PRINTER DRIVER
C00032 00010 OPERATOR INTERRUPT TYPEIN CHECKS
C00034 00011 .SBTTL PRINT CRLF
C00036 00012 .SBTTL PRINT LOWER 18 BITS OF 36 BIT NUMBER
C00038 00013 $PRT36: MOV 4(R1),R0 GET THE WORD
C00040 00014 .SBTTL PRINT OCTAL
C00042 00015 .SBTTL CONVERT BINARY TO DECIMAL AND TYPE ROUTINE
C00045 00016 .SBTTL TTY INPUT ROUTINE TTICHR
C00047 00017 .SBTTL TTIYES YES OR NO ROUTINE
C00048 00018 .SBTTL READ SWITCH REGISTER
C00050 00019 .SBTTL INPUT A STRING FROM TTY
C00052 00020 82$: CMPB (R1),#141
C00054 00021 SPECIAL CHAR PROCESS
C00056 00022 SPECIAL CHARACTERS
C00057 00023 .SBTTL CTY & FSTTY DL11 DRIVERS
C00060 00024 .SBTTL READ AN OCTAL NUMBER FROM THE TTY
C00062 00025 .SBTTL READ A DECIMAL NUMBER FROM THE TTY
C00064 00026 .SBTTL READ A 12 DIGIT OCTAL (36 BIT) NUMBER
C00066 00027 3$: MOV R5,$INPTC RESET INPUT POINTER
C00068 00028 8$: TSTB $0FLG
C00070 00029 .SBTTL SIGNED MULTIPLY SUBROUTINE
C00072 00030 .SBTTL BREAK CHARACTER
C00074 00031 .SBTTL TELETYPE INPUT TERMINATION CHECK
C00076 00032 .SBTTL INPUT & CHECK OCTAL NUMBER
C00077 00033 .SBTTL SHIFT R0 RIGHT/LEFT ROUTINES
C00079 00034 .SBTTL SMALL TIME DELAY
C00080 00035 FATAL VECTOR INTERRUPT
C00081 00036 .SBTTL EMT DECODER
C00083 00037 $PNTNBR EMT + 30
C00085 00038 $DPSVT EMT + 110
C00087 00039 $RPLKUP EMT + 170
C00089 00040 .SBTTL POWER DOWN AND UP ROUTINES
C00092 00041 .SBTTL EXIT SUBROUTINE
C00093 00042 .SBTTL PDP10 OPERATIONS
C00100 00043 $D10ADR:MOV #L10ADR,R4
C00103 00044 START MICROCODE
C00104 00045 PDP-10 INSTRUCTION EXECUTE
C00105 00046 PDP-10 CONTROLLED STOP ROUTINE
C00107 00047 .SBTTL CLOCK INITIALIZATION, INTERRUPTS
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 174
SUB11 PAL[KL,SYS] Page 1.1 FIELD SERVICE TELETYPE INTERRUPT HANDLER
C00110 ENDMK
C⊗;
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 175
SUB11 PAL[KL,SYS] Page 2 BASIC INITIALIZATION ROUTINE, 19-AUG-75
.SBTTL BASIC INITIALIZATION ROUTINE, 19-AUG-75
;*THIS SUBROUTINE PERFORMS THE MOST ELEMENTARY SET UP FOR THE CPU
;*THIS ROUTINE MUST BE EXECUTED BY ALL OF THE POSSIBLE START
;*OPTIONS PRIOR TO ANY OTHER SUBROUTINE
114520 012706 157776 $$ILOAD:MOV #STACK,SP ;START HERE FIRST TIME
114524 012701 002425 MOV #<<.DELAY-$ILDCLR>/2>,R1
114530 012700 152246 MOV #$ILDCLR,R0
114534 005020 1$: CLR (R0)+ ;CLEAR SPECIAL CONTROL WORDS
114536 005301 DEC R1
114540 003375 BGT 1$
114542 012737 000017 157252 MOV #17,CLKDFL+4 ;INITIAL DEFAULT, ALL 4 CACHES
114550 012737 000036 157262 MOV #36,PEBITS ;INITIAL DEFAULT, AR/ARX, FM, CRAM, DRAM
;AND NOT FS PROBE, PARITY STOP ENABLES
114556 004737 115172 JSR PC,$CKSUM ;CHECKSUM "KLDCP"
114562 010037 157314 MOV R0,$ILDSUM ;SAVE
114566 012737 000140 177776 $SBRINT:MOV #CPUPR,PS ;SET CPU PRIORITY ;NORMAL START (100000)
114574 012706 157776 MOV #STACK,SP ;SET THE STACK POINTER
.IF DF %%DDT
; MOV #CPUPR,%DDTS ;CPU PRIORITY FOR DDT
114600 013746 000014 MOV @#14,-(SP) ;PUSH 14 AND 16
114604 013746 000016 MOV @#16,-(SP) ;TO ALLOW DDT BREAKPOINT TRAPS
.ENDC
.IF DF %%QMP
114610 013701 000776 MOV 776,R1 ;Save location 776
.ENDC
114614 005000 CLR R0 ;SET ENTIRE VECTOR AREA TO:
114616 012720 122700 1$: MOV #$FATLE,(R0)+ ; ;ADDRESS OF ERROR HANDLER
114622 012720 000340 MOV #PR7,(R0)+ ; ;PR7
114626 020027 001000 CMP R0,#1000
114632 002771 BLT 1$
.IF DF %%QMP
114634 020127 CMP R1,(PC)+ ;did 776 contain JMP (R0)?
114636 000110 JMP (R0) ;if so, we were started by WAITS
114640 001003 BNE 99$ ;and must go into monitor mode.
114642 052737 100000 000776 BIS #100000,776 ;set sign bit in 776.
99$:
.ENDC
114650 012737 122710 000004 MOV #$TIMOT,@#ERRVEC ;TIME OUT BUS ERROR VECTOR
114656 012737 122720 000010 MOV #$RESVD,@#RESVEC ;RESERVED INSTRUCTION VECTOR
114664 012737 123614 000024 MOV #$PWRDN,@#PWRVEC ;POWER FAIL VECTOR
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 176
SUB11 PAL[KL,SYS] Page 2.1 BASIC INITIALIZATION ROUTINE, 19-AUG-75
.LIF DF BPTASB
MOV #$BRKPT,@#IOTVEC ;IOT VECTOR
114672 012737 123022 000030 MOV #$EMTRP,@#EMTVEC ;EMT VECTOR
.IF DF %%DDT
114700 012637 000016 MOV (SP)+,@#16 ;FOR DDT, POP BREAKPOINT TRAP
114704 012637 000014 MOV (SP)+,@#14
.IFF
MOV #.BCCT,@#BPTVEC ;SET BP VECTOR
.ENDC
.IF DF SAILVR
114710 004737 125744 JSR PC,CLKSTA ;CLOCK START (AFTER CLOBBERING INTERRUPTS)
114714 012737 000140 000032 MOV #CPUPR,@#EMTVEC+2 ;SO EMTS DON'T AFFECT PROCESSOR PRIORITY
.ENDC
.IF DF TELASB
114722 012777 000004 763100 MOV #DLRTS,@$FSTKS ;INITIALIZE
114730 012777 113456 763102 MOV #FSRINT,@$FSTRV ;SETUP FS KL11E RECEIVE TRAP VECTOR
114736 012777 114170 763076 MOV #FSTINT,@$FSTTV ;SETUP FS KL11E TRANSMIT TRAP VECTOR
114744 012700 116100 MOV #40000.,R0 ;40000*2.36USEC = 94.4 MS
114750 077001 SOB R0,. ;WAIT FOR DATA SET TO HANG UP
114752 052777 000046 763050 BIS #DLRTS!DLDTR!DLDIE,@$FSTKS ;SET DATA TERM READY AND DATA SET INT ENB
;LEAVE REQUEST TO SEND UP ALTHOUGH WE DON'T USE IT
.ENDC ;IF DF TELASB
.IF DF CLKASB
114760 012777 111760 763066 MOV #TCUINT,@$CLKTV ;SET UP TCU-100 TRAP VECTOR
.ENDC ;IF DF CLKASB
114766 012700 147442 11$: MOV #BUFCLR,R0 ;CLEAR BUFFER STORAGE BETWEEN:
114772 005020 21$: CLR (R0)+ ;BUFCLR: AND .DELAY !
114774 020027 152246 CMP R0,#$ILDCLR
115000 001374 BNE 21$
115002 010637 147756 MOV SP,$KONSP
115006 005037 077776 CLR CONSOL-2
115012 104217 TTPINI ;RESET TTY POINTERS
115014 012737 000204 150020 MOV #132.,$PGWID ;SET PAGE WIDTH PARAMETER (LA36!)
115022 012737 000000 147776 MOV #0,$TTYFL ;SET FILL PARAMETER TO (LA36!)
115030 104043 PFORCE ;MUST TYPE STARTUP
115032 012737 115152 000004 MOV #NOPAR,ERRVEC ;SET BUS TIMEOUT IN CASE NO PARITY
115040 012737 124076 000114 MOV #MEMPE,MMLPIV ;SETUP PARITY VECTOR
115046 012737 000001 172100 MOV #MMPIE,MMLPBA ;ENABLE PARITY ERRORS
115054 012737 122710 000004 MOV #$TIMOT,ERRVEC ;RESTORE BUS TIMEOUT
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 177
SUB11 PAL[KL,SYS] Page 2.2 BASIC INITIALIZATION ROUTINE, 19-AUG-75
115062 005737 157316 TST $ONETM
115066 001010 BNE 3$
.LIF DF BPTASB
JSR PC,.CB ;CLEAR BP'S
.IF DF SAILVR
PMSG <\Stanford KLDCP - QMP/EN\>
115070 104025 $PMSG
115072 146101 $$CLIT
115074 012700 157240 MOV #SWS10,R0 ;setup initial switches to 3,,600000
115100 005020 CLR (R0)+ ;bits 20:35
115102 052720 000017 BIS #17,(R0)+ ;bits 04:19
115106 005010 CLR (R0) ;bits 0:3
.IFF
PMSG <\DECSYSTEM10 DIAGNOSTIC CONSOLE\VERSION >
MOV #MCNVER,R0
PNTOCS
PNTCI
'.
MOV #DECVER,R0
PNTOCS
;.IF DF SAILVR
; PMSG <, Stanford version >
; MOV #SAILVR,R0
; PNTOCS
;.ENDC
PMSG <\11 SWR = >
MOV SWR,R0
PNTOCT ;PRINT CONSOLE SWITCHES
PCRLF
.ENDC
115110 004737 140730 3$: JSR PC,DTEINI ;DTE20 INITIALIZATION
.IF NDF SAILVR
TST DEVTYP ;USING RP04 ?
BLE 4$ ;NO
RPLOAD ;YES, INIT & LOAD PACK
BCC 4$
RPERROR ;FAILED
.ENDC
4$:
.IF DF %%QMP
115114 005737 000776 TST 776 ;were we loaded and started by the 10?
115120 002010 BGE 44$ ;branch if not
115122 104055 SETFLG
115124 147706 MONMODE
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 178
SUB11 PAL[KL,SYS] Page 2.3 BASIC INITIALIZATION ROUTINE, 19-AUG-75
115126 104055 SETFLG
115130 147710 TENRUN
115132 104055 SETFLG
115134 147634 PRGRUN
115136 104055 SETFLG
115140 147704 MTTYOF
.ENDC
44$:
.LIF DF %%QMP
115142 004737 137674 JSR PC,QMPINI ;initialize QMP
115146 000137 100106 JMP CONSL ;NOW TO CONSOLE
115152 000002 NOPAR: RTI ;NO PARITY REGISTER
115154 012700 152212 $CMCLR: MOV #$CMTAG,R0 ;CLEAR COMMON STORAGE
115160 005020 1$: CLR (R0)+
115162 020027 152242 CMP R0,#MONCTL
115166 002774 BLT 1$
115170 000207 RTS PC
115172 005037 101140 $CKSUM: CLR $KDCEN ;CLEAR ONLY CHANGEABLE LOCATION
115176 012701 100000 MOV #START,R1
115202 005000 CLR R0
115204 062100 2$: ADD (R1)+,R0 ;CHECKSUM "KLDCP"
115206 020137 145026 CMP R1,$$FF
115212 101774 BLOS 2$
115214 000207 RTS PC
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 179
SUB11 PAL[KL,SYS] Page 3 SET EOP INTERVAL TALLY, ERROR EOP
.SBTTL SET EOP INTERVAL TALLY, ERROR EOP
.IF NDF %%EOP
$EOPSET:
$EOP:
115216 104000 $ERREOP:FATAL
.ENDC
.IF DF %%EOP
$EOPSET:MOV R0,$ENDCT ;SET EOP INTERVAL TALLY
EXIT
;CONSOLE SET EOP INTERVAL
.EP: TTISDL
BCS 1$
TTIDEC ;SPECIFIED AS DECIMAL INTERVAL
BCS 1$
MOV R0,$ENDCT
CLR $EOPCT
JMP $KONSL
1$: JMP $PARAM
.SBTTL END OF PASS ROUTINE
$EOP: MOV #$PASS,R5
INC (R5) ;INCREMENT THE PASS NUMBER
CMP (R5),#30001. ;LIMIT MAX COUNT TO 30000
BLT 4$
CLR (R5)
INC (R5)
MOV $ENDCT,$EOPCT ;RESET REPORT INTERVAL
4$: MOV (R5),SWR ;DISPLAY PASS COUNT
SWITCH ;READ THE SWITCH REGISTER
BIT R0,#ABORT ;ABORT AFTER CURRENT PASS?
BNE 1$ ;YES
DEC $EOPCT ;DECREMENT EOP
BGT 3$
BR 2$
1$: MOV #1,$ITERA ;SET ITERATION SO WE WILL EXIT
2$: PMSG <END PASS >
MOV (R5),R0 ;PASS COUNT TO R0
PNTDEC
PCRLF
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 180
SUB11 PAL[KL,SYS] Page 3.1 SET EOP INTERVAL TALLY, ERROR EOP
MOV $ENDCT,$EOPCT ;RESTORE COUNTER
3$: DEC $ITERA ;DECREMENT ITERATION COUNT
BEQ $ERREOP
CLR $ITERA
EXIT
$ERREOP:TST MONCTL ;STAND ALONE ?
BNE $EROP ;NO, *WHAT TO DO ??*
CLR TENRUN ;TURN OFF TEN SUPPORT
CLR PRGRUN ;YES, ALLOW "J" AGAIN
$EROP: JMP CONSL ;MONITOR, TO NEXT SCRIPT ENTRY
.ENDC
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 181
SUB11 PAL[KL,SYS] Page 4 ERROR HALT
.SBTTL ERROR HALT
$PRGHLT:PUSH R0
PMSG <\PRG>
115222 104025 $PMSG
115224 146133 $$CLIT
115226 000412 BR $PH2
$ERRHLT:PUSH R0
115232 104057 SWITCH
115234 030027 000400 BIT R0,#ERSTOP ;STOP ON ERROR ?
115240 001003 BNE 1$ ;YES
POP R0
EXIT ;NO, KEEP GOING
115244 000137 124062 JMP $EXIT
1$: PMSG <\ERROR>
115250 104025 $PMSG
115252 146140 $$CLIT
115254 104055 $PH2: SETFLG
115256 147630 .HCFLG ;ALLOW HALT CONTINUE
115260 012637 147656 $PH1: MOV (SP)+,$R0SAV ;SETUP SO "RG" CAN PRINT
115264 012700 147672 MOV #$R5SAV+2,R0
115270 012640 MOV (SP)+,-(R0) ;R5 to $R5SAV
115272 012640 MOV (SP)+,-(R0) ;R4 to $R4SAV
115274 012640 MOV (SP)+,-(R0) ;R3 to $R3SAV
115276 012640 MOV (SP)+,-(R0) ;R2 to $R2SAV
115300 012640 MOV (SP)+,-(R0) ;R1 to $R1SAV
115302 012637 147626 MOV (SP)+,.HCADR ;halt/continue address (if needed)
115306 012637 147674 MOV (SP)+,$PSSAV ;halt/continue PS.
115312 010637 147672 MOV SP,$SPSAV ;save dead SP
PMSG < HALT AT >
115316 104025 $PMSG
115320 146147 $$CLIT
115322 013700 147626 MOV .HCADR,R0 ;GET ADDRESS
115326 162700 000002 SUB #2,R0 ;COMPUTE ACTUAL ADDRESS
115332 104035 PNTOCT ;PRINT ERROR HALT ADDRESS
115334 104031 PCRLF
115336 104043 PFORCE
115340 005002 CLR R2 ;REGISTER NUMBER
115342 012701 147656 MOV #$R0SAV,R1 ;REG SAVE TABLE POINTER
115346 104214 1$: PNTCI
115350 000122 'R
115352 010200 MOV R2,R0 ;register number
115354 104030 PNTNBR ;PRINT REGISTER NUMBER
115356 104033 4$: PSLASH
115360 012100 2$: MOV (R1)+,R0
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 182
SUB11 PAL[KL,SYS] Page 4.1 ERROR HALT
115362 104035 PNTOCT ;PRINT CONTENTS
115364 104031 PCRLF
115366 005202 INC R2
115370 020227 000006 CMP R2,#6
115374 002764 BLT 1$ ;loop for zero to 5
115376 003003 BGT 3$ ;exit for 7
115400 104214 PNTCI
115402 050123 "SP
115404 000764 BR 4$ ;print R6 as SP
115406 005002 3$: CLR R2 ;Count of stack frames
115410 013701 147672 MOV $SPSAV,R1 ;Stack top address
115414 010100 91$: MOV R1,R0
115416 104035 PNTOCT
115420 104033 PSLASH
115422 012100 MOV (R1)+,R0
115424 104035 PNTOCT ;PRINT CONTENTS
115426 104031 PCRLF
115430 020127 160000 CMP R1,#COREND
115434 002004 BGE 92$
115436 005202 INC R2
115440 020227 000006 CMP R2,#6
115444 002763 BLT 91$ ;loop to display several stack items
115446 005737 147630 92$: TST .HCFLG ;is this a continuable halt?
115452 001402 BEQ 93$ ;BR if not
115454 000137 100014 JMP $CONSL ;RETURN TO MONITOR
93$:
.LIF DF %%DDT
115460 000137 056000 JMP 56000
.LIF NDF %%DDT
JMP $SBRINT ;major crash. nearly major reload
115464 005737 147630 .HC: TST .HCFLG
115470 001002 BNE 1$
115472 000137 100574 JMP $CMDER ;HC NOT ALLOWED
115476 005037 147630 1$: CLR .HCFLG
.LIF DF BPTASB
JSR PC,.BCHC
115502 013706 147672 MOV $SPSAV,R6
115506 013737 147674 177776 MOV $PSSAV,PS
115514 000177 032106 JMP @.HCADR
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 183
SUB11 PAL[KL,SYS] Page 5 PRINT ASCIZ MESSAGE (PNTAL)
.SBTTL PRINT ASCIZ MESSAGE (PNTAL)
115520 142710 000200 $PNTAL: BICB #200,(R0) ;CLEAR JUNK
115524 105710 TSTB (R0) ;REACHED EOL YET?
115526 001430 BEQ 3$ ;YES
115530 005737 150742 TST HLPPNT ;PRINTING A HELP FILE
115534 001006 BNE 4$ ;YES
115536 121027 000137 CMPB (R0),#BKARW ;BACKARROW (-)?
115542 001416 BEQ 2$ ;YES
115544 121027 000134 CMPB (R0),#BKSLH ;BACKSLASH (\)?
115550 001403 BEQ 1$
115552 112001 4$: MOVB (R0)+,R1 ;PUT CHAR IN R1
115554 104154 PLDBUF ;LOAD INTO OUTPUT BUFFER
115556 000760 BR $PNTAL ;DO TILL E-O-L
115560 012701 000015 1$: MOV #CR,R1 ;BACKSLASH
115564 104154 PLDBUF ;OUTPUT CR & LF
115566 012701 000012 MOV #LF,R1
115572 104154 PLDBUF
115574 005200 11$: INC R0
115576 000750 BR $PNTAL
115600 005037 150010 2$: CLR CTRLOF ;CLEAR CONTROL O FLAG
115604 104151 PRINTT ;BACKARROW, PRINT BUFFER
115606 000772 BR 11$
115610 000406 3$: BR $$PNTX
.SBTTL PRINT ASCII NUMBER (PNTNBR)
115612 042700 177770 $PNTNBR:BIC #177770,R0
115616 052700 000060 BIS #'0,R0
.SBTTL PRINT ASCII CHARACTER (PNTCHR)
115622 110001 $PNTCHR:MOVB R0,R1
115624 104154 PLDBUF
$$PNTX: EXIT
115626 000137 124062 JMP $EXIT
115632 012700 000040 $PSPACE: MOV #SPACE,R0
115636 000771 BR $PNTCHR
115640 012700 000057 $PSLASH: MOV #SLASH,R0
115644 000766 BR $PNTCHR
115646 012700 000054 $PCOMMA: MOV #COMMA,R0
115652 000763 BR $PNTCHR
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 184
SUB11 PAL[KL,SYS] Page 5.1 PRINT ASCII CHARACTER (PNTCHR)
115654 012700 000011 $PTAB: MOV #TAB,R0
115660 000760 BR $PNTCHR
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 185
SUB11 PAL[KL,SYS] Page 6 PRINT BUFFER LOAD ROUTINE
.SBTTL PRINT BUFFER LOAD ROUTINE
$PLDBUF:PUSH R0
115664 013700 150514 MOV $OUTPT,R0
115670 042701 177600 BIC #177600,R1 ;STRIP TO 7 BITS
115674 110120 MOVB R1,(R0)+ ;PUT CHAR IN BUFFER
115676 105010 CLRB (R0) ;INSERT TRAILING NULL
115700 010037 150514 MOV R0,$OUTPT
POP R0
115706 023727 150514 150510 CMP $OUTPT,#$OUTBF+140.;EXCEEDED BUFFER CAPACITY
115714 002012 BGE 2$
115716 122701 000012 1$: CMPB #LF,R1 ;WAS CHAR LINE FEED
115722 001407 BEQ 2$ ;YES
115724 122701 000007 CMPB #BELL,R1 ;WAS CHAR BELL ?
115730 001404 BEQ 2$ ;YES
115732 122701 000000 CMPB #NULL,R1 ;WAS CHAR NULL ?
115736 001401 BEQ 2$ ;YES
115740 000732 3$: BR $$PNTX ;NO, RETURN
115742 005737 152232 2$: TST PCMDNF ;DOING NO PRINT PROGRAM COMMAND
115746 001374 BNE 3$
.LIF DF LPTASB
PLPT ;LINE PRINTER
115750 104151 PRINTT ;PRINT BUFFER
115752 005037 150004 CLR $TTLKF ;CLEAR TTLOOK FLAG
PUSH R0
115760 104215 PNTRST ;RESET OUTPUT POINTERS
POP R0
115764 000765 BR 3$
;PRINT, BACKUP OUTPUT INSERTION POINTER
115766 023727 150514 150274 $PNTBAK:CMP $OUTPT,#$OUTBF ;ALL THE WAY BACK ?
115774 003402 BLE 1$ ;YES
115776 005337 150514 DEC $OUTPT ;NO, BACKUP ONE BYTE
116002 000711 1$: BR $$PNTX
;TELETYPE POINTER INITIALIZATION
116004 012737 150520 150736 $TTPINI:MOV #$INBUF,$INPTC
116012 012737 150520 150740 MOV #$INBUF,$INPTR
116020 012700 150274 $PNTRST:MOV #$OUTBF,R0
116024 010037 150514 MOV R0,$OUTPT
116030 010037 150512 MOV R0,$OUTPP
116034 000674 BR $$PNTX
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 186
SUB11 PAL[KL,SYS] Page 7 TELETYPE PRINT OUTPUT ROUTINE
.SBTTL TELETYPE PRINT OUTPUT ROUTINE
$PRINT: PUSH R0
116040 005737 150000 TST $FORCE ;FORCED PRINT OUT
116044 001014 BNE 19$ ;YES BYPASS SWITCH TEST
116046 105737 157304 TSTB LPTFLG ;PRINT ON LPT ?
116052 001004 BNE 99$ ;BR IF YES
116054 104057 SWITCH
116056 030027 010000 BIT R0,#NOPNT ;PRINTOUT INHIBITED
116062 001407 BEQ 1$
116064 013737 150514 150512 99$: MOV $OUTPT,$OUTPP ;DONE, SET PRINTED TO POSITION
POP R0
116074 000654 BR $$PNTX ;RETURN
116076 005037 150010 19$: CLR CTRLOF ;CLEAR CONTROL O FLAG
116102 013701 150512 1$: MOV $OUTPP,R1
116106 122711 000015 11$: CMPB #CR,(R1) ;IS CHAR CR?
116112 001412 BEQ 2$ ;BR IF YES
116114 023737 150022 150020 CMP $PRNTH,$PGWID ;NO,ARE WE AT RIGHT MARGIN
116122 002410 BLT 3$ ;BR IF NO
116124 112700 000015 MOVB #CR,R0 ;YES, FREE CR/LF
116130 104152 PTTY
116132 112700 000012 MOVB #LF,R0
116136 104152 PTTY
116140 005237 150014 2$: INC $TPLIT ;COUNT LINE
116144 111100 3$: MOVB (R1),R0 ;GET CHARACTER
116146 001746 BEQ 99$ ;IF NULL, DONE
116150 104152 PTTY ;PRINT CHAR
116152 105721 TSTB (R1)+ ;LOOP TILL E-O-L
116154 001354 BNE 11$
116156 004737 110742 4$: JSR PC,C10COP
116162 004737 120774 JSR PC,$TORDY ;THEN WAIT FOR TTY TO BE READY
116166 103773 BCS 4$
116170 000735 BR 99$
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 187
SUB11 PAL[KL,SYS] Page 8 TELETYPE DRIVER
.SBTTL TELETYPE DRIVER
116172 005002 $PTTY: CLR R2
116174 005003 CLR R3
116176 004737 116544 1$: JSR PC,$PTTYC ;DO OPERATOR CHECKS
116202 005703 TST R3 ;R3 = 0 IF NOTHING
116204 001410 BEQ 4$
116206 122703 000021 2$: CMPB #XON,R3
116212 001407 BEQ 6$ ;XON,PRINT
116214 122703 000023 CMPB #XOFF,R3
116220 001002 BNE 4$
116222 012702 777777 3$: MOV #-1,R2 ;XOFF,STOP PRINT
116226 005702 4$: TST R2
116230 001362 BNE 1$ ;IF XOFF, WAIT FOR XON
116232 005737 150010 6$: TST CTRLOF ;CONTROL O'D ?
116236 001015 BNE 7$ ;YES
116240 122700 000015 CMPB #CR,R0 ;CR
116244 001012 BNE 7$
116246 005737 150016 TST $TPLIN ;YES, IN PAGE MODE
116252 001407 BEQ 7$ ;NO
116254 023737 150014 150016 CMP $TPLIT,$TPLIN ;FILLED THIS PAGE
116262 002403 BLT 7$
116264 005037 150014 CLR $TPLIT ;YES,CLEAR COUNTER,XOFF
116270 000754 BR 3$
116272 005002 7$: CLR R2
116274 122700 000011 CMPB #CNTRLI,R0 ;IS CHAR A TAB?
116300 001005 BNE 10$
116302 004737 116514 8$: JSR PC,$PTTY1 ;COMPUTE SPACES COUNT
116306 005202 9$: INC R2 ;COMPLETED "TAB"?
116310 112700 000040 MOVB #BLANK,R0
116314 004737 110742 10$: JSR PC,C10COP ;PERFORM CLOCK OPERATIONS
116320 005737 150010 TST CTRLOF
116324 001011 BNE 11$
116326 004737 120774 JSR PC,$TORDY ;WAIT TILL TTY IS READY
116332 103770 BCS 10$
116334 110037 147762 MOVB R0,$TOCHR ;PRINT CHAR
116340 004737 121036 JSR PC,$TOOUT
116344 004737 116530 19$: JSR PC,$PTTY2 ;WILL CHAR MOVE PRINT HEAD ?
116350 005702 11$: TST R2 ;DOING SPACES?
116352 001355 BNE 9$ ;BR IF YES
116354 005737 150010 TST CTRLOF
116360 001053 BNE 15$
116362 012702 144746 MOV #$DTBL0,R2 ;FILLER PROCESS
116366 105712 12$: TSTB (R2)
116370 001447 BEQ 15$ ;BR IF CHAR DOESN'T REQUIRE FILLS
116372 122200 CMPB (R2)+,R0
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 188
SUB11 PAL[KL,SYS] Page 8.1 TELETYPE DRIVER
116374 001374 BNE 12$
116376 005302 DEC R2 ;FOUND
116400 162702 144746 SUB #$DTBL0,R2
116404 006302 ASL R2
116406 016202 144752 MOV $DTBL1(R2),R2 ;ADDRESS TO R2
116412 063702 147776 ADD $TTYFL,R2 ;ADD FILL PARAMETER
116416 111202 MOVB (R2),R2 ;R2 = NUMBER OF FILLS
116420 120027 000015 CMPB R0,#CR ;CR?
116424 001014 BNE 13$ ;NO
116426 023727 150022 000017 CMP $PRNTH,#15. ;MORE THEN 15 CHARS ON LINE ?
116434 003001 BGT 16$
SR R2,1 ;NO, 1/4 TH OF FILLERS THEN
116440 023727 150022 000050 16$: CMP $PRNTH,#40. ;MORE THAN 40 CHARS ON LINE ?
116446 003001 BGT 17$
SR R2,1 ;NO, 1/2 OF FILLERS THEN
116452 005037 150022 17$: CLR $PRNTH ;SET PRINT HEAD TO LEFT MARGIN
116456 005302 13$: DEC R2 ;COMPLETED FILLERS?
116460 002413 BLT 15$
116462 004737 110742 14$: JSR PC,C10COP ;PERFORM CLOCK OPERATIONS
116466 004737 120774 JSR PC,$TORDY
116472 103773 BCS 14$
116474 112737 000000 147762 MOVB #NULL,$TOCHR ;SEND FILLER
116502 004737 121036 JSR PC,$TOOUT
116506 000763 BR 13$
15$: EXIT ;RETURN
116510 000137 124062 JMP $EXIT
116514 013702 150022 $PTTY1: MOV $PRNTH,R2 ;HEAD POSITION
116520 162702 000010 1$: SUB #8.,R2 ;DIVIDED BY 8
116524 002375 BGE 1$ ;REMAINDER IS SPACES COUNT
116526 000207 RTS PC
116530 120027 000040 $PTTY2: CMPB R0,#BLANK ;WILL CHAR MOVE PRINT HEAD?
116534 002402 BLT 1$ ;BR IF NO
116536 005237 150022 INC $PRNTH ;YES
116542 000207 1$: RTS PC
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 189
SUB11 PAL[KL,SYS] Page 9 LINE PRINTER DRIVER
.SBTTL LINE PRINTER DRIVER
.IF DF LPASB
$PLPT: PUSH R0
TST LPTFLG ;PRINT ON LPT ?
BPL 99$ ;NO
TSTB LPTFLG
BEQ 99$
TST $FORCE ;FORCED PRINT ?
BNE 1$ ;YES, BYPASS SWITCH TEST
SWITCH
BIT R0,#NOPNT ;PRINTOUT INHIBITED ?
BEQ 1$ ;NO
99$: POP R0
EXIT ;RETURN
1$: TST LPTYPE ;LP20 OR LP11 ?
BNE 50$ ;LP20
TST @$LPS ;IS LPT OK ?
BMI 4$ ;BR IF ERROR
MOV #$OUTBF,R1
2$: MOVB (R1)+,R0 ;GET CHAR
BEQ 99$ ;NULL, DONE
3$: CLR R2
CMPB #CNTRLI,R0 ;TAB ?
BNE 41$
JSR PC,$PTTY1 ;YES, COMPUTE SPACES COUNT
42$: INC R2
MOV #BLANK,R0
41$: JSR PC,$PTTYC ;DO OPERATOR CHECKS
32$: TST @$LPS ;LPT OK ?
BMI 4$ ;NO
JSR PC,C10COP ;PERFORM CLOCK OPERATIONS
TSTB @$LPS ;LPT READY ?
BPL 41$ ;NO
MOVB R0,@$LPB ;PRINT CHARACTER
JSR PC,$PTTY2 ;WILL CHAR MOVE PRINT HEAD ?
45$: TST R2 ;COMPLETED "TAB" ?
BNE 42$
43$: CMPB R0,#CR
BNE 44$
CLR $PRNTH ;IF CR, RESET HEAD POSITION
44$: BR 2$
4$: MOV #$LPTOF,R1 ;"LPT OFF LINE"
5$: MOVB (R1),R0
PTTY
TSTB (R1)+
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 190
SUB11 PAL[KL,SYS] Page 9.1 LINE PRINTER DRIVER
BEQ 6$
BR 5$
6$: CLRB LPTFLG ;PRINT ON TTY TILL RESELECTED
BR 99$
50$: MOV LPTYPE,R5 ;LP20 DRIVER ROUTINE
MOV #LPLINI!LPRERR,(R5) ;CLEAR LP20
DEC LPPCTR(R5) ;CLEAR PAGE COUNTER
MOV #$OUTBF,R0 ;GET BUFFER ADDRESS
MOV R0,LPBSAD(R5) ;SETUP LP20 BUFFER ADDRESS
SUB $OUTPT,R0 ;COMPUTE BYTE COUNT
MOV R0,LPBCTR(R5) ;SETUP LP20 BYTE COUNT
MOV #LPPENB!LPGO,(R5) ;START XFER
JSR PC,LP20DN ;WAIT FOR DONE
BCS 4$ ;ERROR
BR 99$ ;DONE
LP20DN: JSR PC,C10COP ;PERFORM CLOCK OPERATIONS
BIT #LPERR!LPPZRO!LPUCHR!LPDONE,(R5)
BEQ LP20DN ;WAIT FOR DONE OR ERROR
TSTB (R5) ;DONE ?
BPL 1$ ;NO, ERROR
CLC
RTS PC ;DONE, C-BIT CLEAR RETURN
1$: SEC
RTS PC ;ERROR, C-BIT SET RETURN
$LPTOF: .ASCIZ /LPT OFF
/
.EVEN
.ENDC ;.IF DF LPASB
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 191
SUB11 PAL[KL,SYS] Page 10 LINE PRINTER DRIVER
;OPERATOR INTERRUPT TYPEIN CHECKS
116544 005003 $PTTYC: CLR R3
116546 005737 150004 TST $TTLKF ;INPUT CHECKS INHIBITED ?
116552 001066 BNE 5$ ;YES
116554 004737 120666 JSR PC,$TIRDY ;ANY OPERATOR ACTION ?
116560 103463 BCS 5$ ;NO
116562 113703 147764 MOVB $TICHR,R3
116566 142703 000200 BICB #200,R3
116572 010337 150044 MOV R3,$TNCHR
116576 104176 TENCHR ;SEND CHAR TO TEN
116600 122703 000003 CMPB #CNTRLC,R3 ;CONTROL C ?
116604 001010 BNE 3$
116606 104217 TTPINI ;FLUSH REST OF OUTPUT
116610 005737 152234 TST PCMDFLG ;DOING PROGRAM COMMAND ?
116614 001002 BNE 2$ ;YES
116616 000137 120522 JMP $TICC ;CONTROL C, RETURN TO CONSOLE
116622 000137 101572 2$: JMP PCMDE2 ;PROGRAM COMMAND, RETURN TO CALLER
116626 122703 000017 3$: CMPB #CNTRLO,R3
116632 001021 BNE 1$
116634 005137 150010 COM CTRLOF ;CONTROL O, STOP OUTPUT
116640 012703 116732 MOV #$PTCO,R3
116644 004737 110742 10$: JSR PC,C10COP
116650 004737 120774 JSR PC,$TORDY
116654 103773 BCS 10$
116656 112337 147762 MOVB (R3)+,$TOCHR
116662 001002 BNE 90$
116664 005003 CLR R3
116666 000420 BR 5$
116670 004737 121036 90$: JSR PC,$TOOUT
116674 000763 BR 10$
116676 122703 000014 1$: CMPB #CNTRLL,R3 ;CONTROL L, CHANGE LPT SELECTION
116702 001005 BNE 4$
116704 005737 157304 TST LPTFLG
116710 100002 BPL 4$
116712 105137 157304 COMB LPTFLG ;ONLY IF SELECTED
116716 122703 000030 4$: CMPB #CNTRLX,R3 ;CONTROL X, CONSOLE COMMAND
116722 001002 BNE 5$
116724 000137 120566 JMP $TICX ;DO "TTILIN" & GO TO "$RPT"
116730 000207 5$: RTS PC
116732 136
116733 117
116734 015
116735 012 $PTCO: .ASCIZ /↑O
116736 000
/
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 192
SUB11 PAL[KL,SYS] Page 10.1 LINE PRINTER DRIVER
116740 .EVEN
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 193
SUB11 PAL[KL,SYS] Page 11 PRINT CRLF
.SBTTL PRINT CRLF
$PCRLF: PMSG <\>
116740 104025 $PMSG
116742 146161 $$CLIT
116744 000524 BR $$PEX
.SBTTL RING TTY BELL
116746 112700 000007 $PBELL: MOVB #BELL,R0
116752 104152 PTTY ;DING THE BELL DIRECTLY
116754 000520 BR $$PEX
.SBTTL PRINT SPECIFIED OCTAL DIGITS
116756 017701 030672 $PODT: MOV @$EMADR,R1 ;TRAILING PARAMETER
116762 062766 000002 000012 ADD #2,12(SP)
116770 010102 $PNTODC:MOV R1,R2 ;SETUP DIGIT COUNT
116772 003001 BGT 1$
116774 104000 FATAL
116776 020127 000006 1$: CMP R1,#6
117002 003401 BLE 2$
117004 104000 FATAL
117006 012701 150026 2$: MOV #$TTSAV+2,R1
117012 005011 CLR (R1) ;SETUP OCTAL NUMBER
117014 010041 MOV R0,-(R1)
117016 004737 117324 JSR PC,$PODMV ;SETUP PARAMETERS
117022 005037 147774 CLR $0FLG ;NO SPACE FOLLOWING NUMBER
117026 116203 117035 MOVB $PODCD-1(R2),R3 ;GET PRESET SHIFT COUNT
117032 104146 PROL36 ;PRESET NUMBER
117034 000453 BR $P23X ;GO PRINT NUMBER
117036 041
117037 036
117040 033
117041 030
117042 025
117043 022 $PODCD: .BYTE 33.,30.,27.,24.,21.,18.
.SBTTL PRINT PDP-10 ADDRESS
;PRINTS 23 BIT FORMAT IF ANY OF 13-17 ADDRESS BITS ARE SET.
;OTHERWISE PRINTS 18 BIT FORMAT.
117044 004737 117070 $PADR: JSR PC,$$P23
117050 032761 000174 000004 BIT #174,4(R1) ;ANY OF 13-17 SET ?
117056 001025 BNE $P23Y ;YES
117060 012703 000006 MOV #6,R3
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 194
SUB11 PAL[KL,SYS] Page 11.1 PRINT PDP-10 ADDRESS
117064 104146 PROL36 ;NO, DUMP HI-ORDER BITS
117066 000434 BR $P18X ;PRINT 18 BITS
117070 004737 117304 $$P23: JSR PC,$P36MV
117074 012703 000014 MOV #12.,R3
117100 104146 PROL36 ;POSITION 23 BITS
117102 042761 177600 000004 BIC #177600,4(R1) ;CLEAR UPPER JUNK BITS
117110 000207 RTS PC
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 195
SUB11 PAL[KL,SYS] Page 12 PRINT LOWER 18 BITS OF 36 BIT NUMBER
.SBTTL PRINT LOWER 18 BITS OF 36 BIT NUMBER
117112 004737 117304 $PNT18: JSR PC,$P36MV
117116 012703 000022 MOV #18.,R3
117122 104146 PROL36 ;SHIFT LOWER 18 BITS TO UPPER
117124 000415 BR $P18X
.SBTTL PRINT LOWER 23 BITS OF 36 BIT NUMBER
117126 004737 117070 $PNT23: JSR PC,$$P23
117132 012702 000002 $P23Y: MOV #2,R2
117136 005204 INC R4
117140 000411 BR $P23X
.SBTTL PRINT 36 BIT NUMBER IN BINARY
117142 004737 117304 $P36B: JSR PC,$P36MV
117146 005105 COM R5
117150 000402 BR $P36BX
.SBTTL PRINT 36 BIT NUMBER
117152 004737 117304 $PNT36: JSR PC,$P36MV
117156 005204 $P36BX: INC R4
117160 $P18X=.
117160 012702 000006 2$: MOV #6,R2
117164 $P23X=.
117164 012703 000003 1$: MOV #3,R3
117170 104146 PROL36 ;ROTATE 3
117172 004737 117222 JSR PC,$PRT36 ;PRINT OCTAL
117176 005302 DEC R2 ;FINISHED HALF WORD YET ?
117200 001371 BNE 1$
117202 005737 147774 TST $0FLG
117206 001401 BEQ 3$
117210 104032 PSPACE
117212 005304 3$: DEC R4 ;FINISHED FULL WORD YET ?
117214 100361 BPL 2$
$$PEX: EXIT
117216 000137 124062 JMP $EXIT
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 196
SUB11 PAL[KL,SYS] Page 13 PRINT 36 BIT NUMBER
117222 016100 000004 $PRT36: MOV 4(R1),R0 ;GET THE WORD
117226 000300 SWAB R0
117230 005705 TST R5
117232 001002 BNE 1$
117234 104030 PNTNBR ;PRINT OCTAL
117236 000207 RTS PC
1$: PUSH R4
117242 010004 MOV R0,R4
117244 012703 177776 MOV #177776,R3
SR R0,2
117254 040300 BIC R3,R0
117256 104030 PNTNBR ;PRINT HI-BIT OF OCTAL
117260 010400 MOV R4,R0
SR R0,1
117264 040300 BIC R3,R0
117266 104030 PNTNBR ;PRINT MIDDLE-BIT OF OCTAL
117270 010400 MOV R4,R0
117272 040300 BIC R3,R0
117274 104030 PNTNBR ;PRINT LO-BIT OF OCTAL
117276 104032 PSPACE
POP R4
117302 000207 RTS PC
117304 012703 000006 $P36MV: MOV #6,R3 ;MOVE 6 BYTES
117310 012702 150024 MOV #$TTSAV,R2 ;TO SETUP DATA
117314 010201 MOV R2,R1
117316 112022 1$: MOVB (R0)+,(R2)+
117320 005303 DEC R3
117322 001375 BNE 1$
117324 005005 $PODMV: CLR R5
117326 005004 CLR R4
117330 012703 000004 MOV #4,R3
117334 010337 147774 MOV R3,$0FLG ;SET SPACE FLAG
117340 104146 PROL36 ;PRESET NUMBER
117342 000207 RTS PC
117344 006111 $PROL36:ROL (R1)
117346 006161 000002 ROL 2(R1)
117352 006161 000004 ROL 4(R1)
117356 005303 DEC R3
117360 001371 BNE $PROL36
117362 000715 BR $$PEX
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 197
SUB11 PAL[KL,SYS] Page 14 PRINT OCTAL
.SBTTL PRINT OCTAL
117364 012704 777777 $PNTOCT:MOV #-1,R4 ;PRINT OCTAL
117370 000401 BR $PNTO
.SBTTL PRINT OCTAL ZERO SUPRRESS
117372 005004 $PNTOSC:CLR R4 ;PRINT OCTAL ZERO SUPPRESS
117374 012701 000006 $PNTO: MOV #6,R1 ;SET FOR 6 DIGITS
117400 010002 MOV R0,R2 ;SAVE INPUT NUMBERS
117402 005005 CLR R5 ;CLEAR THE ZERO FILL FLAG
117404 005704 TST R4 ;ZERO SUPPRESS ?
117406 001004 BNE 10$ ;NO
117410 005700 TST R0 ;TEST FOR A ZERO INPUT NUMBER
117412 001003 BNE 1$
117414 005001 CLR R1 ;INPUT = 0 PRINT AND EXIT
117416 000417 BR 5$
117420 005205 10$: INC R5
117422 005000 1$: CLR R0
117424 006102 ROL R2 ;MSD TO C BIT
117426 000404 BR 3$
117430 006102 2$: ROL R2
117432 006102 ROL R2
117434 006102 ROL R2
117436 010200 MOV R2,R0
117440 006100 3$: ROL R0
117442 042700 177770 BIC #177770,R0 ;GET RID OF JUNK
117446 001401 BEQ 4$
117450 005205 INC R5 ;SET ZERO FILL FLAG
117452 005705 4$: TST R5 ;SUPPRESS ?
117454 001401 BEQ 6$
117456 104030 5$: PNTNBR ;PRINT DIGIT
117460 005301 6$: DEC R1
117462 003362 BGT 2$
117464 005704 TST R4
117466 001401 BEQ 7$
117470 104032 PSPACE ;SPACE UNLESS OCTAL SUPPRESS
117472 000450 7$: BR $$PEX1
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 198
SUB11 PAL[KL,SYS] Page 15 CONVERT BINARY TO DECIMAL AND TYPE ROUTINE
.SBTTL CONVERT BINARY TO DECIMAL AND TYPE ROUTINE
117474 012701 000005 $PNTDEC:MOV #5,R1 ;SET FOR 5 DIGIT
117500 010002 MOV R0,R2 ;SAVE INPUT NUMBER
117502 005005 CLR R5 ;CLEAR ZERO FILL FLAG
117504 005700 TST R0 ;TEST SIGN OF INPUT NUMBER
117506 100007 BPL 1$ ;POSITIVE GO TYPE IT
117510 112700 000055 MOVB #'-,R0 ;PRINT A MINUS SIGN
117514 104027 PNTCHR ;SEND TO BUFFER
117516 005402 NEG R2 ;NEGATE THE NUMBER
117520 010200 MOV R2,R0 ;GET NUMBER AGAIN
117522 042700 100000 BIC #100000,R0 ;CLEAR SIGN BIT
117526 005700 1$: TST R0 ;TEST FOR A ZERO INPUT NUMBER
117530 001002 BNE 2$ ;NON ZERO
117532 104030 PNTNBR ;PRINT A SINGLE ZERO AND EXIT
117534 000425 BR 9$ ;EXIT
117536 005003 2$: CLR R3 ;ZERO THE CONSTANTS INDEX
117540 005000 3$: CLR R0 ;CLEAR THE BCD NUMBER
117542 166302 145002 4$: SUB $DTBL(R3),R2 ;FORM THIS BCD DIGIT
117546 002402 BLT 5$ ;BR IF DONE
117550 005200 INC R0 ;INCREASE THE BCD DIGIT BY 1
117552 000773 BR 4$
117554 066302 145002 5$: ADD $DTBL(R3),R2 ;ADD BACK THE CONSTANT
117560 005700 TST R0 ;TEST IF DIGIT IS A ZERO
117562 001402 BEQ 6$ ;YES
117564 005205 INC R5 ;NO SET ZERO FILL FLAG
117566 000402 BR 7$
117570 005705 6$: TST R5 ;IS ZERO FILL FLAG SET
117572 001403 BEQ 8$ ;YES EXIT
117574 052700 000060 7$: BIS #'0,R0 ;MAKE THE BCD DIGIT ASCII
117600 104027 PNTCHR
117602 005723 8$: TST (R3)+ ;JUST INCREMENTING
117604 005301 DEC R1 ;DONE YET
117606 003354 BGT 3$ ;GO DO THE NEXT DIGIT
117610 104214 9$: PNTCI
117612 000056 '. ;PRINT DECIMAL POINT
$$PEX1: EXIT ;RETURN TO USER
117614 000137 124062 JMP $EXIT
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 199
SUB11 PAL[KL,SYS] Page 16 TTY INPUT ROUTINE TTICHR
.SBTTL TTY INPUT ROUTINE TTICHR
117620 005000 $TTICHR:CLR R0
117622 023737 150736 150740 CMP $INPTC,$INPTR ;ARE WE AT END ON CURRENT BUFFER
117630 003007 BGT $TTIX2 ;YES EXIT
117632 117700 031100 MOVB @$INPTC,R0 ;FETCH CHARACTER FROM BUFFER
117636 005237 150736 INC $INPTC
117642 042700 177600 $TTIX1: BIC #177600,R0
117646 000431 BR $$PSX2 ;OK RETURN
117650 000426 $TTIX2: BR $$PEX2 ;ERROR RETURN
.SBTTL TTY LOOK
;*TELETYPE KEYBOARD CHECK ROUTINE
;*CHECKS FOR ANY KEY STRUCK,RETURNS IMMEDIATELY
;*RETURNS WITH C-BIT SET IF NO TYPEIN
117652 005237 150004 $TTLOOK:INC $TTLKF ;SET INHIBIT INPUT CHECKS
117656 005000 CLR R0
117660 004737 120666 JSR PC,$TIRDY ;ANYTHING BEEN TYPED
117664 103771 BCS $TTIX2 ;NO, C-BIT RETURN
117666 113700 147764 MOVB $TICHR,R0 ;YES, PUT IT IN R0
117672 005037 150004 CLR $TTLKF ;CLEAR INHIBIT INPUT CHECKS
117676 000761 BR $TTIX1 ;RETURN
.SBTTL TTY ALT-MODE CHECK ROUTINE
;*CHECK FOR ALT-MODE IF NOTHING TYPED OR NOT ALTMODE C-BIT SET
;*IF ALT-MODE WAS TYPED THEN C-BIT CLEAR
117700 104006 $TTALTM:TTLOOK ;ANYTHING TYPED
117702 103411 BCS 2$ ;NO
117704 120027 000175 CMPB R0,#175
117710 001412 BEQ 3$
117712 120027 000176 CMPB R0,#176
117716 001407 BEQ 3$
117720 120027 000033 CMPB R0,#ALTMOD
117724 001402 BEQ 1$
117726 $$PEX2=.
2$: EXITERR ;EXIT
117726 000137 124034 JMP $EXITE
117732 $$PSX2=.
1$: EXIT ;OK RETURN
117732 000137 124062 JMP $EXIT
117736 112700 000033 3$: MOVB #ALTMOD,R0
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 200
SUB11 PAL[KL,SYS] Page 16.1 TTY ALT-MODE CHECK ROUTINE
117742 000773 BR 1$
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 201
SUB11 PAL[KL,SYS] Page 17 TTIYES YES OR NO ROUTINE
.SBTTL TTIYES YES OR NO ROUTINE
; NO BITS SET IF YES
; N-BIT SET IF NO
; C-BIT SET IF NEITHER
117744 104005 $TTIYES:TTICHR ;GET INPUT CHARACTER
117746 103767 BCS $$PEX2 ;NO CHAR AVAILABLE
117750 122700 000131 CMPB #'Y,R0 ;WAS THE CHAR A "Y" ?
117754 001766 BEQ $$PSX2 ;BR IF YES
117756 122700 000116 CMPB #'N,R0 ;WAS THE CHAR AN "N" ?
117762 001361 BNE $$PEX2 ;BR IF NO, NEITHER
117764 052766 000010 000014 BIS #NBIT,14(SP) ;"NO", SET N-BIT
117772 000757 BR $$PSX2
.SBTTL PRINT A SELECTED NUMBER OF SPACES
117774 005301 $PNTSPC:DEC R1
117776 002402 BLT 1$
120000 104032 PSPACE ;PRINT SPACE
120002 000774 BR $PNTSPC
120004 000207 1$: RTS PC
.SBTTL BACKUP TTY INPUT BUFFER POINTER
120006 023727 150736 150520 $TTBACK:CMP $INPTC,#$INBUF
120014 003744 BLE $$PEX2 ;CAN'T, C-BIT SET RETURN
120016 005337 150736 DEC $INPTC ;BACKUP POINTER
120022 000743 BR $$PSX2
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 202
SUB11 PAL[KL,SYS] Page 18 READ SWITCH REGISTER
.SBTTL READ SWITCH REGISTER
120024 013700 177570 $SWITCH:MOV SWR,R0 ;PUT SWR INTO R0
120030 010037 147652 1$: MOV R0,$SWTCH ;SAVE A COPY FOR FUTURE REFERENCE
120034 000410 BR $$PEX3 ;RETURN TO USER
.SBTTL RETURN WITH COPY OF SWITCHES
120036 013700 147652 $SWTSAM:MOV $SWTCH,R0 ;COPY OF SWITCHES TO RO
120042 000405 BR $$PEX3
.SBTTL SET FORCE PRINT FLAG
120044 104055 $PFORCE:SETFLG
120046 150000 $FORCE ;177777 TO FORCE FLAG
120050 000402 BR $$PEX3 ;RETURN
.SBTTL CLEAR FORCE PRINT FLAG
120052 005037 150000 $PNORML:CLR $FORCE ;0 TO FORCE FLAG
$$PEX3: EXIT ;RETURN
120056 000137 124062 JMP $EXIT
;TTILIN ENTRY POINT FROM RUNLP
120062 005037 150002 $TILRN: CLR TILNWF ;CLEAR TTY WAIT FLAG
120066 004737 120104 JSR PC,$TILN3 ;INIT TTILIN ROUTINE
PUSH $FORCE
120076 012701 150520 MOV #$INBUF,R1
120102 000446 BR $TILN2 ;GO INPUT, 1ST CHAR ALREADY AVAILABLE
120104 005037 150010 $TILN3: CLR CTRLOF ;CLEAR CONTROL O FLAG
120110 022737 150274 150514 CMP #$OUTBF,$OUTPT ;ANY OUTPUT WAITING ?
120116 001401 BEQ 1$ ;NO
120120 104151 PRINTT ;YES, PRINT IT
120122 005037 150014 1$: CLR $TPLIT ;CLEAR LINES ON PAGE
120126 005037 147774 CLR $0FLG ;CLEAR RUBOUT FLAG
120132 005037 147702 CLR $TTYTIM ;CLEAR TTY TIMEOUT
120136 000207 RTS PC
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 203
SUB11 PAL[KL,SYS] Page 19 INPUT A STRING FROM TTY
.SBTTL INPUT A STRING FROM TTY
120140 104055 $TTILNW:SETFLG ;SET TTY WAIT FLAG
120142 150002 TILNWF
120144 000402 BR $TILNX
120146 005037 150002 $TTILIN:CLR TILNWF ;CLEAR TTY WAIT FLAG
120152 004737 120104 $TILNX: JSR PC,$TILN3 ;INIT ROUTINE
PUSH $FORCE
120162 104043 PFORCE
120164 012701 150520 95$: MOV #$INBUF,R1
120170 $TILN1=.
120170 004737 110742 2$: JSR PC,C10COP ;PERFORM CLOCK OPERATIONS
120174 005737 150002 TST TILNWF ;WAIT FOREVER ?
120200 001004 BNE 21$ ;YES, NO TIMEOUT
120202 023727 147702 025060 CMP $TTYTIM,#<3*60.*60.>;TTY TIMED OUT ?
120210 003062 BGT 99$ ;YES, C-BIT SET EXIT
120212 004737 120666 21$: JSR PC,$TIRDY ;TTY IN FLAG SET
120216 103764 BCS 2$
120220 $TILN2=.
120220 005037 147702 CLR $TTYTIM
120224 113711 147764 MOVB $TICHR,(R1) ;MOVE CHARACTER TO BUFFER
120230 142711 000200 BICB #200,(R1)
120234 111137 150044 MOVB (R1),$TNCHR ;SAVE CHAR FOR TEN
120240 001753 BEQ 2$ ;NULL, IGNORE
120242 104176 TENCHR ;SEND TEN THE CHAR
120244 005005 CLR R5 ;DO SPECIAL CHAR PROCESS
120246 121165 120610 80$: CMPB (R1),TILINC(R5)
120252 001405 BEQ 81$ ;FOUND
120254 005205 INC R5
120256 105765 120610 TSTB TILINC(R5)
120262 001404 BEQ 82$ ;IF 0, END OF LIST
120264 000770 BR 80$
81$: SL R5,1 ;DISPATCH
120270 000175 120630 JMP @TILINA(R5)
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 204
SUB11 PAL[KL,SYS] Page 20 INPUT A STRING FROM TTY
120274 121127 000141 82$: CMPB (R1),#141
120300 002405 BLT 83$
120302 121127 000172 CMPB (R1),#172
120306 003002 BGT 83$
120310 142711 000040 BICB #40,(R1) ;CONVERT LOWER TO UPPER CASE
83$: PUSH R1
120316 111101 MOVB (R1),R1 ;PUT CHAR IN R1
120320 104154 PLDBUF ;INSERT FOR LPT
120322 005237 150512 INC $OUTPP ;MOVE PRINTED-TO-POSITION
POP R1
120330 005737 147774 10$: TST $0FLG ;RUBOUT KEY SET?
120334 001405 BEQ 11$ ;BR IF NO
120336 112700 000134 MOVB #BKSLH,R0 ;TYPE A BACK SLASH
120342 104152 PTTY
120344 005037 147774 CLR $0FLG ;CLEAR RUBOUT FLAG
120350 112100 11$: MOVB (R1)+,R0 ;CHAR TO R0
120352 104152 PTTY ;PRINT IT
120354 000705 BR 2$ ;BACK FOR MORE
120356 010137 150740 99$: MOV R1,$INPTR ;SAVE INPUT POINTER
POP $FORCE
EXITERR ;TIMED OUT, C-BIT SET RETURN
120366 000137 124034 JMP $EXITE
120372 005737 147774 $TIRUB: TST $0FLG ;MULTIPLE RUBOUTS ?
120376 001005 BNE 1$ ;YES
120400 005237 147774 INC $0FLG ;SET RUBOUT FLAG
120404 112700 000134 MOVB #BKSLH,R0 ;TYPE A BACKSLASH
120410 104152 PTTY
120412 005301 1$: DEC R1 ;BACKUP BY ONE
120414 020127 150517 CMP R1,#$INBUF-1 ;INPUT BUFFER EMPTY ?
120420 001004 BNE 2$ ;NO
120422 104031 PCRLF ;EMPTY, PRINT CR/LF
POP $FORCE
120430 000650 BR $TILNX ;AWAIT NEW LINE
120432 111100 2$: MOVB (R1),R0 ;PRINT RUBBED OUT CHAR
120434 104152 PTTY
120436 000654 BR $TILN1
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 205
SUB11 PAL[KL,SYS] Page 21 INPUT A STRING FROM TTY
;SPECIAL CHAR PROCESS
$TICU: PMSG <↑U\> ;CONTROL U, DUMP LINE
120440 104025 $PMSG
120442 146163 $$CLIT
POP $FORCE
120450 000640 BR $TILNX
120452 005201 $TICR: INC R1 ;CARRIAGE RETURN
120454 112711 000012 MOVB #LF,(R1) ;INSERT LF ALSO
120460 104031 $TIBELL:PCRLF ;PRINT CR/LF
120462 010137 150740 $TIEXT: MOV R1,$INPTR ;UPDATE INPUT POINTER
120466 012737 150520 150736 MOV #$INBUF,$INPTC ;INIT CHAR POINTER
POP $FORCE
EXIT ;RETURN
120500 000137 124062 JMP $EXIT
120504 112711 000033 $TIALT: MOVB #ALTMOD,(R1) ;ALTMODE
PMSG <$\> ;PRINT DOLLAR SIGN CR/LF
120510 104025 $PMSG
120512 146167 $$CLIT
120514 000762 BR $TIEXT
120516 104031 $TIBKS: PCRLF ;BACKSLASH, DO LOCAL CR/LF
120520 000623 BR $TILN1
120522 104214 $TICC: PNTCI ;CONTROL C, ABORT
120524 041536 "↑C
120526 000137 100004 JMP $CNTLC
120532 005737 157304 $TICL: TST LPTFLG ;CONTROL L, LPT SELECTION
120536 100214 BPL $TILN1
120540 105137 157304 COMB LPTFLG
120544 000611 BR $TILN1
120546 111100 $TILF: MOVB (R1),R0 ;LINE FEED
120550 104152 PTTY
120552 000743 BR $TIEXT
120554 005037 150010 $TICO: CLR CTRLOF ;CLEAR CONTROL O FLAG
120560 104214 PNTCI
120562 047536 "↑O
120564 000735 BR $TIBELL ;CR/LF & TERMINATE
120566 104217 $TICX: TTPINI
120570 104214 PNTCI
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 206
SUB11 PAL[KL,SYS] Page 21.1 INPUT A STRING FROM TTY
120572 054136 "↑X
120574 104004 TTILIN ;GET COMMAND LINE
120576 103751 BCS $TICC ;TIMED OUT
120600 013706 147756 MOV $KONSP,SP ;RESTORE STACK POINTER
120604 000137 100456 JMP $RPT ;GO PROCESS COMMAND
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 207
SUB11 PAL[KL,SYS] Page 22 INPUT A STRING FROM TTY
;SPECIAL CHARACTERS
120610 015
120611 012 TILINC: .BYTE CR,LF
120612 007
120613 033 .BYTE BELL,ALTMOD
120614 175
120615 176 .BYTE 175,176
120616 014
120617 025 .BYTE CNTRLL,CNTRLU
120620 003
120621 134 .BYTE CNTRLC,BKSLH
120622 177
120623 017 .BYTE RUBOUT,CNTRLO
120624 021
120625 023 .BYTE XON,XOFF
120626 030
120627 000 .BYTE CNTRLX,0
;SPECIAL CHAR DISPATCH TABLE
120630 120452 TILINA: $TICR
120632 120546 $TILF
120634 120460 $TIBELL
120636 120504 $TIALT
120640 120504 $TIALT
120642 120504 $TIALT
120644 120532 $TICL
120646 120440 $TICU
120650 120522 $TICC
120652 120516 $TIBKS
120654 120372 $TIRUB
120656 120554 $TICO
120660 120460 $TIBELL
120662 120460 $TIBELL
120664 120566 $TICX
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 208
SUB11 PAL[KL,SYS] Page 23 CTY & FSTTY DL11 DRIVERS
.SBTTL CTY & FSTTY DL11 DRIVERS
120666 105777 757126 $TIRDY: TSTB @$TKS ;ANY CTY INPUT ?
120672 100020 BPL 2$ ;NO
120674 032777 020000 757120 BIT #20000,@$TKB ;YES. BREAK?
120702 001010 BNE 5$ ;BRANCH IF YES
120704 117737 757112 147764 MOVB @$TKB,$TICHR ;GET CHAR
120712 142737 000200 147764 1$: BICB #200,$TICHR ;CLEAR PARITY BIT
120720 000241 CLC ;C-BIT CLEAR RETURN
120722 000207 RTS PC
120724 112737 000030 147764 5$: MOVB #MSWCHR,$TICHR ;BREAK SEEN.
120732 000767 BR 1$
2$:
.IF NDF TELASB
TST DL11EFLG ;DOING DL11E ?
BEQ 3$ ;NO
BIT #DLCTS,@$FSTKS ;YES, STILL HAVE CLEAR TO SEND ?
BEQ 4$ ;NO
.IFF
120734 005737 152256 TST FSFLG ;DOING DL11E?
120740 001413 BEQ 3$ ;NO
120742 032777 020000 757060 BIT #DLCTS,@$FSTKS ;STILL HAVE CLEAR TO SEND?
120750 001407 BEQ 3$ ;NO
.ENDC
120752 105777 757052 TSTB @$FSTKS ;ANY FSTTY INPUT ?
120756 100004 BPL 3$ ;NO
120760 117737 757046 147764 MOVB @$FSTKB,$TICHR ;YES, GET CHAR
120766 000751 BR 1$ ;C-BIT CLEAR RETURN
120770 000261 3$: SEC ;NO INPUT, C-BIT SET RETURN
120772 000207 RTS PC
.LIF NDF TELASB
4$: JMP FSDISC ;DL11E DISCONNECT
120774 105777 757024 $TORDY: TSTB @$TPS ;IS CTY READY ?
121000 100014 BPL 2$ ;NO
.IF NDF TELASB
TST DL11EFLG ;DOING DL11E ?
BEQ 1$ ;NO
BIT #DLCTS,@$FSTKS ;STILL HAVE CLEAR TO SEND ?
BEQ 3$ ;NO
.IFF
121002 005737 152256 TST FSFLG
121006 001407 BEQ 1$
121010 032777 020000 757012 BIT #DLCTS,@$FSTKS ;STILL HAVE CLEAR TO SEND?
121016 001403 BEQ 1$ ;NO
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 209
SUB11 PAL[KL,SYS] Page 23.1 CTY & FSTTY DL11 DRIVERS
.ENDC
121020 105777 757010 TSTB @$FSTPS ;IS FSTTY READY ?
121024 100002 BPL 2$ ;NO
121026 000241 1$: CLC ;ALL READY, C-BIT CLEAR RETURN
121030 000207 RTS PC
121032 000261 2$: SEC ;NOT READY
121034 000207 RTS PC
.LIF NDF TELASB
3$: JMP FSDISC ;DL11E DISCONNECT
121036 113777 147762 756762 $TOOUT: MOVB $TOCHR,@$TPB ;PRINT ON CTY
.IF NDF TELASB
TST DL11EFLG
BEQ 1$
.IFF
121044 005737 152256 TST FSFLG
121050 001407 BEQ 1$
121052 032777 020000 756750 BIT #DLCTS,@$FSTKS ;STILL HAVE CLEAR TO SEND
121060 001403 BEQ 1$
.ENDC
121062 113777 147762 756746 MOVB $TOCHR,@$FSTPB ;PRINT ON FSTTY
121070 000207 1$: RTS PC
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 210
SUB11 PAL[KL,SYS] Page 24 READ AN OCTAL NUMBER FROM THE TTY
.SBTTL READ AN OCTAL NUMBER FROM THE TTY
;REGISTER USAGE
;R0 = TTY CHARACTER 7 BIT FROM $INBUF
;R2 = WORK REGISTER
;R3 = CLEARED/SET = NO OCTAL CHARS/AT LEAST 1 OCTAL CHAR
121072 005002 $TTIOCT:CLR R2 ;CLEAR WORK REGISTER
121074 004737 121166 JSR PC,$TMINUS ;CHECK FOR PLUS & MINUS
121100 104005 1$: TTICHR ;PICKUP THIS CHARACTER
121102 103416 BCS 2$
121104 120027 000060 CMPB R0,#60 ;MAKE SURE THIS CHARACTER
121110 002413 BLT 2$ ;IS AN OCTAL DIGIT
121112 120027 000067 CMPB R0,#67
121116 003010 BGT 2$
121120 005203 INC R3 ;TO SHOW I GOT ONE CHARACTER
121122 006302 ASL R2
121124 006302 ASL R2
121126 006302 ASL R2
121130 042700 177770 BIC #177770,R0
121134 060002 ADD R0,R2
121136 000760 BR 1$
121140 005000 2$: CLR R0 ;SET UP FOR EXIT
121142 005703 TST R3 ;DID WE GET ANY DATA
121144 001406 BEQ $$PEX7 ;NO, ERROR RETURN
121146 010200 MOV R2,R0
121150 005704 TST R4 ;NEGATE FLAG SET ?
121152 001401 BEQ $$PEX6 ;NO
121154 005400 NEG R0 ;YES, MAKE NUMBER NEGATIVE
121156 000137 122336 $$PEX6: JMP $TTERM ;VERIFY TERMINATION & EXIT
$$PEX7: EXITERR ;ERROR RETURN
121162 000137 124034 JMP $EXITE
121166 005003 $TMINUS:CLR R3 ;CLEAR CHAR COUNTER
121170 005004 CLR R4 ;CLEAR NEGATE FLAG
121172 013705 150736 MOV $INPTC,R5 ;SAVE INPUT POINTER
121176 104005 TTICHR ;GET 1ST CHAR
121200 103412 BCS 82$ ;NONE AVAILABLE
121202 122700 000053 CMPB #'+,R0
121206 001404 BEQ 80$
121210 122700 000055 CMPB #'-,R0 ;NEGATE ?
121214 001002 BNE 81$ ;BR IF NO
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 211
SUB11 PAL[KL,SYS] Page 24.1 READ AN OCTAL NUMBER FROM THE TTY
121216 005204 INC R4 ;YES, SET NEGATE FLAG
121220 005205 80$: INC R5 ;YES, ADVANCE PAST -
121222 010537 150736 81$: MOV R5,$INPTC
121226 000207 82$: RTS PC
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 212
SUB11 PAL[KL,SYS] Page 25 READ A DECIMAL NUMBER FROM THE TTY
.SBTTL READ A DECIMAL NUMBER FROM THE TTY
121230 012702 150024 $TTIDEC:MOV #$TTSAV,R2 ;RESERVE STORAGE
121234 004737 121166 JSR PC,$TMINUS ;CHECK FOR PLUS & MINUS
121240 104005 1$: TTICHR ;READ IN A CHARACTER
121242 103413 BCS 2$
121244 120027 000060 CMPB R0,#60 ;MAKE SURE THIS CHARACTER
121250 002410 BLT 2$ ;IS A DIGIT BETWEEN 0 & 9
121252 120027 000071 CMPB R0,#71
121256 003005 BGT 2$
121260 005203 INC R3 ;SO I KNOW I GOT A DIGIT
121262 042700 177760 BIC #177760,R0 ;DON'T LET NUMBER GET TO BIG
121266 110022 MOVB R0,(R2)+
121270 000763 BR 1$
121272 005000 2$: CLR R0 ;CLEAR OUTPUT
121274 005703 TST R3 ;DID WE GET ANY THING
121276 001420 BEQ 6$ ;NO
;NOW WE CONVERT IT
121300 005001 CLR R1 ;CLEAR TABLE INDEX
121302 020227 150024 3$: CMP R2,#$TTSAV
121306 002410 BLT 5$ ;YES NORMAL EXIT
121310 114205 MOVB -(R2),R5 ;PUT IN R5
121312 005305 4$: DEC R5 ;DONE YET
121314 002403 BLT 7$
121316 066100 145014 ADD $TBLL(R1),R0 ;TALLY IT UP
121322 000773 BR 4$
121324 005721 7$: TST (R1)+ ;UPDATE TABLE TALLY
121326 000765 BR 3$
121330 005704 5$: TST R4 ;NEGATE NUMBER ?
121332 001401 BEQ 9$
121334 005400 NEG R0 ;YES
121336 000707 9$: BR $$PEX6 ;RETURN
121340 000710 6$: BR $$PEX7 ;ERROR RETURN
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 213
SUB11 PAL[KL,SYS] Page 26 READ A 12 DIGIT OCTAL (36 BIT) NUMBER
.SBTTL READ A 12 DIGIT OCTAL (36 BIT) NUMBER
;$0FLG, 0=NO DATA; 0,-1=ONE DATA WORD; -1,-1= TWO PART DATA
;DATA IS TRUNCATED TO 6 OCTALS IN EITHER HALF OF 2 PART DATA
;DATA IS TRUNCATED TO 12 OCTALS IN 1 PART DATA
;DURING CONVERSION
;1 PART DATA; $0FLG =0
;2 PART DATA; $0FLG=-1,0 DURING HI6; 0,-1 DURING LO6
121342 004737 122042 $TTI36: JSR PC,$TI36C
121346 005037 147770 CLR $SVH
121352 005037 147766 CLR $SVM
121356 005037 147774 CLR $0FLG
121362 005037 147772 CLR $NEG
121366 004737 121166 JSR PC,$TMINUS
121372 005704 TST R4
121374 001402 BEQ 1$
121376 105237 147773 INCB $NEG+1 ;SET NEGATE FLAG
121402 104005 1$: TTICHR ;READ A CHAR
121404 103424 99$: BCS 98$ ;BUFFER EMPTY
121406 120027 000060 CMPB R0,#60 ;MAKE SURE ITS OCTAL
121412 002407 BLT 2$
121414 120027 000067 CMPB R0,#67
121420 003004 BGT 2$
121422 112737 777777 147774 MOVB #-1,$0FLG ;WE GOT AT LEAST 1 DIGIT
121430 000764 BR 1$
121432 105737 147774 2$: TSTB $0FLG
121436 001546 BEQ 69$
121440 120027 000040 CMPB R0,#BLANK ;WAS IT A SPACE ?
121444 001021 BNE 3$ ;NOPE
121446 112737 777777 147775 MOVB #-1,$0FLG+1 ;SET 2 WORD FLAG
121454 104005 TTICHR ;GET 1ST CHAR OF 2ND PART
121456 103421 98$: BCS 97$
121460 122700 000053 CMPB #'+,R0
121464 001410 BEQ 71$
121466 122700 000055 CMPB #'-,R0 ;IS IT MINUS ?
121472 001403 BEQ 21$ ;YES
121474 005337 150736 DEC $INPTC ;NO, BACKUP INPUT POINTER
121500 000740 BR 1$
121502 105237 147772 21$: INCB $NEG ;SET 2ND PART NEGATE FLAG
121506 000735 71$: BR 1$ ;PROCESS 2ND HALF WORD
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 214
SUB11 PAL[KL,SYS] Page 27 READ A 12 DIGIT OCTAL (36 BIT) NUMBER
121510 010537 150736 3$: MOV R5,$INPTC ;RESET INPUT POINTER
121514 105037 147774 CLRB $0FLG
121520 104005 4$: TTICHR
121522 103444 97$: BCS 96$
121524 120027 000060 CMPB R0,#60
121530 002414 BLT 5$
121532 120027 000067 CMPB R0,#67
121536 003011 BGT 5$
121540 142700 000370 BICB #370,R0
121544 012701 000003 MOV #3,R1
121550 004737 121764 6$: JSR PC,SHFT36 ;SHIFT 36 BIT WORD LEFT 3
121554 150037 147502 BISB R0,$DRAM ;INSERT NEW CHAR
121560 000757 BR 4$
121562 105737 147775 5$: TSTB $0FLG+1 ;DOING 2 PART NUMBER ?
121566 001434 BEQ 8$ ;BR IF NO
121570 105737 147773 51$: TSTB $NEG+1 ;NEGATE UPPER PART ?
121574 001402 BEQ 52$ ;NO
121576 004737 122006 JSR PC,NEG36 ;NEGATE 36 BIT WORD
121602 012701 000022 52$: MOV #18.,R1 ;YES, MOVE NUMBER TO UPPER 18 BITS
121606 004737 121764 7$: JSR PC,SHFT36 ;SHIFT 36 BIT WORD LEFT 18
121612 014537 147770 MOV -(R5),$SVH ;SAVE UPPER BITS
121616 014537 147766 MOV -(R5),$SVM ;SAVE MIDDLE BITS
121622 004737 122042 JSR PC,$TI36C
121626 000337 147774 SWAB $0FLG ;MAKE $0FLG 0,-1
121632 104005 TTICHR ;GET 1ST CHAR OF 2ND PART
121634 103450 96$: BCS 9$
121636 122700 000053 CMPB #'+,R0
121642 001726 BEQ 4$
121644 122700 000055 CMPB #'-,R0 ;IS IT MINUS ?
121650 001723 BEQ 4$ ;YES
121652 005337 150736 DEC $INPTC ;NO, BACKUP INPUT POINTER
121656 000720 BR 4$
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 215
SUB11 PAL[KL,SYS] Page 28 READ A 12 DIGIT OCTAL (36 BIT) NUMBER
121660 105737 147774 8$: TSTB $0FLG
121664 001417 BEQ 10$ ;BR IF 1 PART
121666 105737 147772 TSTB $NEG ;NEGATE LOWER PART ?
121672 001402 BEQ 81$ ;NO
121674 004737 122006 JSR PC,NEG36 ;NEGATE 36 BIT WORD
121700 012701 147504 81$: MOV #$DRAM+2,R1
121704 042711 177774 BIC #177774,(R1)
121710 053721 147766 BIS $SVM,(R1)+
121714 005011 CLR (R1) ;CLEAR BITS 0-17
121716 053711 147770 BIS $SVH,(R1) ;REINSERT UPPER BITS
121722 000405 BR 12$
121724 105737 147773 10$: TSTB $NEG+1 ;MAKE NUMBER NEGATIVE ?
121730 001402 BEQ 12$ ;BR IF NO
121732 004737 122006 JSR PC,NEG36 ;NEGATE 36 BIT WORD
121736 042737 177760 147506 12$: BIC #177760,$DRAM+4 ;STRIP OVERFLOW
121744 012700 147502 MOV #$DRAM,R0 ;RETURN STORAGE ADR IN R0
121750 000137 122336 JMP $TTERM ;VERIFY TERMINATION & EXIT
121754 005000 69$: CLR R0 ;NO DIGITS TYPED
121756 104201 9$: TTERM ;VERIFY TERMINATION
EXITERR ;ERROR RETURN
121760 000137 124034 JMP $EXITE
;SHIFT 36 BIT WORD C(R1) PLACES LEFT
121764 012705 147502 SHFT36: MOV #$DRAM,R5
121770 000241 CLC
121772 006125 ROL (R5)+
121774 006125 ROL (R5)+
121776 006125 ROL (R5)+
122000 005301 DEC R1
122002 003370 BGT SHFT36
122004 000207 RTS PC
;NEGATE - TWO'S COMPLEMENT 36 BIT WORD
122006 012701 147502 NEG36: MOV #$DRAM,R1 ;MAKE 1'S COMPLEMENT
122012 005121 COM (R1)+
122014 005121 COM (R1)+
122016 005111 COM (R1)
122020 012701 147502 MOV #$DRAM,R1
122024 062721 000001 ADD #1,(R1)+ ;MAKE THAT 2'S COMPLEMENT
122030 005521 ADC (R1)+
122032 005511 ADC (R1)
122034 042711 177760 BIC #177760,(R1) ;STRIP OVERFLOW
122040 000207 RTS PC
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 216
SUB11 PAL[KL,SYS] Page 28.1 READ A 12 DIGIT OCTAL (36 BIT) NUMBER
122042 012700 147502 $TI36C: MOV #$DRAM,R0 ;CLEAR STORAGE
122046 005020 CLR (R0)+
122050 005020 CLR (R0)+
122052 005020 CLR (R0)+
122054 000207 RTS PC
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 217
SUB11 PAL[KL,SYS] Page 29 SIGNED MULTIPLY SUBROUTINE
.SBTTL SIGNED MULTIPLY SUBROUTINE
$MULTP: PUSH R0
122060 016601 000022 MOV 22(SP),R1
122064 016600 000020 MOV 20(SP),R0 ;MULTIPLICAND
122070 005004 CLR R4 ;CLEAR SIGN
122072 005700 TST R0 ;TEST SIGN
122074 100002 BPL 1$
122076 005204 INC R4 ;SET SIGN BIT
122100 005400 NEG R0 ;MAKE MULTIPLICAND POSITIVE
122102 005701 1$: TST R1 ;TEST SIGN OF MULTIPLIER
122104 100002 BPL 2$
122106 005304 DEC R4 ;UPDATE SIGN BIT
122110 005401 NEG R1 ;MAKE MULTIPLIER POSITIVE
122112 012703 000021 2$: MOV #17.,R3 ;SET LOOP COUNT
122116 005002 CLR R2 ;SET UP FOR MULTIPLY LOOP
122120 103001 3$: BCC 4$ ;DONT ADD IF MULTIPLICAND IS ZERO
122122 060102 ADD R1,R2
122124 006002 4$: ROR R2 ;POSITION THE PARTIAL PRODUCT
122126 006000 ROR R0 ;AND THE MULTIPLICAND
122130 005303 DEC R3 ;DONE YET
122132 001372 BNE 3$ ;NOPE
122134 005704 TST R4 ;TEST SIGN
122136 001403 BEQ 5$ ;PRODUCT IS POSITIVE
122140 005400 NEG R0 ;PRODUCT SHOULD BE NEGATIVE
122142 005402 NEG R2
122144 005600 SBC R0 ;SUBTRACT CARRY
122146 010066 000020 5$: MOV R0,20(SP) ;MOST SIGNIFICANT BITS
122152 010266 000022 MOV R2,22(SP) ;LEAST SIGNIFICANT BITS
POP R0
EXIT ;EXIT
122160 000137 124062 JMP $EXIT
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 218
SUB11 PAL[KL,SYS] Page 30 BREAK CHARACTER
.SBTTL BREAK CHARACTER
122164 005337 150736 $TTIBRK:DEC $INPTC ;BACKUP INPUT POINTER
122170 104005 TTICHR
122172 103122 BCC $$PEX4 ;NOTHING IN BUFFER
$$PEX5: EXITERR
122174 000137 124034 JMP $EXITE
.SBTTL TELETYPE INPUT SPACE DELETE ROUTINE
122200 104005 $TTSDL: TTICHR
122202 103446 BCS $TTSDX ;BUFFER EMPTY
122204 120027 000040 CMPB R0,#BLANK
122210 001773 BEQ $TTSDL ;DELETE SPACES
122212 120027 000011 CMPB R0,#TAB
122216 001770 BEQ $TTSDL ;DELETE TABS
122220 122700 000055 CMPB #'-,R0 ;TREAT + OR -
122224 001411 BEQ 3$ ;SAME AS NUMBER
122226 122700 000053 CMPB #'+,R0
122232 001406 BEQ 3$
122234 120027 000060 CMPB R0,#60
122240 002406 BLT 1$ ;BR IF NON-NUMBER
122242 120027 000071 CMPB R0,#71
122246 003003 BGT 1$ ;BR IF NON-NUMBER
122250 005337 150736 3$: DEC $INPTC ;NUMBER, BACKUP INPUT POINTER
122254 000471 BR $$PEX4 ;C-BIT CLEAR RETURN
122256 120027 000072 1$: CMPB R0,#': ;COLON OR SLASH, V-BIT & C-BIT SET
122262 001412 BEQ 10$
122264 120027 000057 CMPB R0,#'/
122270 001407 BEQ 10$
122272 120027 000136 CMPB R0,#'↑ ;UPARROW, Z-BIT & C-BIT SET
122276 001336 BNE $$PEX5
122300 052766 000004 000014 BIS #ZBIT,14(SP)
122306 000732 BR $$PEX5
122310 052766 000002 000014 10$: BIS #VBIT,14(SP)
122316 000726 BR $$PEX5
122320 000137 113452 $TTSDX: JMP $PARAM
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 219
SUB11 PAL[KL,SYS] Page 31 TELETYPE INPUT TERMINATION CHECK
.SBTTL TELETYPE INPUT TERMINATION CHECK
122324 005237 150736 $TTITRM:INC $INPTC ;BECAUSE "TTERM" DECREMENTS
122330 104201 $TTBTRM:TTERM ;VERIFY TERMINATOR
122332 103772 BCS $TTSDX ;BAD, C-BIT SET RETURN
122334 000441 BR $$PEX4 ;OK
$TTERM: PUSH R0
122340 005337 150736 DEC $INPTC ;BACKUP INPUT POINTER
122344 104005 TTICHR ;GET TERMINATION CHAR
122346 103407 BCS 2$ ;NONE
122350 012701 122376 MOV #TRMTAB,R1 ;SETUP TERMINATION SCAN POINTER
122354 120011 1$: CMPB R0,(R1) ;CHAR MATCH LEGAL TERMINATOR ?
122356 001403 BEQ 2$ ;YES
122360 105721 TSTB (R1)+ ;NOT YET, GO TO NEXT
122362 001403 BEQ 3$ ;NO MATCH, ERROR
122364 000773 BR 1$
2$: POP R0
122370 000423 BR $$PEX4 ;OK, C-BIT CLEAR RETURN
3$: POP R0
122374 000677 BR $$PEX5 ;ERROR, C-BIT SET RETURN
122376 040
122377 011 TRMTAB: .BYTE SPACE,TAB
122400 054
122401 015 .BYTE COMMA,CR
122402 033
122403 072 .BYTE ALTMOD,72 ;COLON
122404 057
122405 000 .BYTE 57,0 ;SLASH
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 220
SUB11 PAL[KL,SYS] Page 32 INPUT & CHECK OCTAL NUMBER
.SBTTL INPUT & CHECK OCTAL NUMBER
122406 104016 $TTCOCT:TTISDL
122410 103743 BCS $TTSDX
122412 104007 TTIOCT
122414 103741 BCS $TTSDX ;NON-OCTAL
122416 000410 BR $$PEX4 ;OK
122420 104010 $TOCTE: TTCOCT
122422 032700 000001 BIT #1,R0 ;ONLY EVEN OCTAL
122426 001334 BNE $TTSDX
122430 000403 BR $$PEX4
.SBTTL TELETYPE DELETE SPACES & INPUT OCTAL NUMBER
122432 104010 $TTSDO: TTCOCT
122434 005700 TST R0 ;MUST BE POSITIVE ALSO
122436 100730 BMI $TTSDX
122440 $$PEX4=.
EXIT
122440 000137 124062 JMP $EXIT
.SBTTL TELETYPE DELETE SPACES & INPUT 36BIT NUMBER
122444 104016 $TTS36: TTISDL ;DELETE SPACES
122446 103724 BCS $TTSDX
122450 104014 TTI36 ;INPUT 36 BIT NUMBER
122452 103722 BCS $TTSDX
122454 000771 BR $$PEX4
.SBTTL TELETYPE INPUT C-RAM ADDRESS
122456 104017 $TICRA: TTISDO ;GET ADDRESS
122460 020027 002777 CMP R0,#2777
122464 003765 BLE $$PEX4
122466 000137 113350 JMP ADRERR ;TOO BIG
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 221
SUB11 PAL[KL,SYS] Page 33 SHIFT R0 RIGHT/LEFT ROUTINES
.SBTTL SHIFT R0 RIGHT/LEFT ROUTINES
122472 017701 025156 $SHFTR: MOV @$EMADR,R1 ;GET SHIFT COUNT
122476 006200 1$: ASR R0 ;SHIFT RIGHT
122500 005301 DEC R1
122502 003375 BGT 1$
$SHFTX: EXITSKP ;SKIP OVER TRAILING PARAMETER
122504 000137 124054 JMP $EXITS
122510 017701 025140 $SHFTL: MOV @$EMADR,R1
122514 006300 1$: ASL R0 ;SHIFT LEFT
122516 005301 DEC R1
122520 003375 BGT 1$
122522 000770 BR $SHFTX
.SBTTL PRINT MESSAGE, CONDITIONAL DEPENDING ON "RPTFLG"
122524 105737 147752 $$PMSR: TSTB RPTFLG ;DOES REPEAT FLAG ALLOW PRINTING ?
122530 001365 BNE $SHFTX ;NO
.SBTTL PRINT MESSAGE
122532 017700 025116 $$PMSG: MOV @$EMADR,R0 ;MESSAGE ADDRESS TO R0
122536 104024 PNTAL ;PRINT
122540 000761 BR $SHFTX ;SKIP RETURN
.SBTTL PRINT CHARACTER IMMEDIATE
122542 013702 147654 $PNTCI: MOV $EMADR,R2 ;GET DATA ADDRESS
122546 112201 MOVB (R2)+,R1 ;GET FIRST BYTE
122550 104154 PLDBUF ;INSERT IN BUFFER
122552 111201 MOVB (R2),R1 ;GET 2ND BYTE
122554 001401 BEQ 1$ ;IS THERE ANY ?
122556 104154 PLDBUF ;YES, INSERT IN BUFFER
122560 000751 1$: BR $SHFTX ;SKIP RETURN
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 222
SUB11 PAL[KL,SYS] Page 34 SMALL TIME DELAY
.SBTTL SMALL TIME DELAY
122562 012701 000012 $DELAY: MOV #10.,R1
122566 005301 1$: DEC R1
122570 001376 BNE 1$
EXIT
122572 000137 124062 JMP $EXIT
;CONSOLE TIME DELAY FOR REPEAT LOOPS
122576 104016 .TD: TTISDL
122600 103404 BCS 1$ ;NO ARG, DO ONCE
122602 104011 TTIDEC
122604 103402 BCS 1$ ;DO ONCE ANYWAY
122606 010001 MOV R0,R1 ;SAVE DELAY COUNT
122610 000401 BR 2$
122612 005001 1$: CLR R1
122614 104056 2$: TDELAY ;SMALL TIME DELAY
122616 005301 DEC R1 ;DONE REQUESTED DELAYS ?
122620 003375 BGT 2$
122622 000137 100230 JMP $KONSL
.SBTTL SAVE AND RESTORE R0-R5 ROUTINES
$REGSAV:PUSH R0
PUSH 16(SP)
PUSH 16(SP)
122640 000002 RTI
;*RESTORE R0-R5
122642 016666 000014 000034 $REGRST:MOV 14(SP),34(SP)
122650 016666 000012 000032 MOV 12(SP),32(SP)
122656 062706 000016 ADD #16,SP
POP <R0,R5,R4,R3,R2,R1>
122676 000002 RTI
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 223
SUB11 PAL[KL,SYS] Page 35 SAVE AND RESTORE R0-R5 ROUTINES
;FATAL VECTOR INTERRUPT
$FATLE: PUSH R0
PMSG <?FATAL INTR>
122702 104025 $PMSG
122704 146172 $$CLIT
122706 000407 BR $EOR
$TIMOT: PUSH R0
PMSG <?BUS TIMEOUT>
122712 104025 $PMSG
122714 146206 $$CLIT
122716 000403 BR $EOR
$RESVD: PUSH R0
PMSG <?RESERVED INST>
122722 104025 $PMSG
122724 146223 $$CLIT
122726 005037 147710 $EOR: CLR TENRUN
POP R0
PUSH <R1,R2,R3,R4,R5,R0>
122750 000414 BR $EOR2
;STACK UNDERFLOW
122752 012706 157774 $STUF: MOV #STACK-2,SP
122756 010637 147756 MOV SP,$KONSP
PMSG <?ST UNFLO>
122762 104025 $PMSG
122764 146242 $$CLIT
122766 005037 152234 CLR PCMDFLG
122772 000137 100004 JMP $CNTLC
$NOTAS: PMSG <?UNAS EMT>
122776 104025 $PMSG
123000 146254 $$CLIT
123002 005037 152234 $EOR2: CLR PCMDFLG
123006 000137 115260 JMP $PH1
$FATAL: PUSH R0
PMSG <?FATAL>
123014 104025 $PMSG
123016 146266 $$CLIT
123020 000770 BR $EOR2
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 224
SUB11 PAL[KL,SYS] Page 36 EMT DECODER
.SBTTL EMT DECODER
;*THIS ROUTINE WILL PICKUP THE LOWER BYTE OF THE "EMT" INSTRUCTION
;*AND USE IT TO INDEX THROUGH THE EMT TABLE FOR THE STARTING ADDRESS
;*OF THE DESIRED ROUTINE. THEN USING THE ADDRESS OBTAINED IT WILL
;*GO TO THAT ROUTINE.
123022 020627 157360 $EMTRP: CMP SP,#$$STKM ;check against stack bottom
123026 003751 BLE $STUF ;OFF BOTTOM OF STACK
PUSH <R1,R2,R3,R4,R5,R0>
123044 016600 000014 MOV 14(SP),R0 ;GET EMT ADDRESS (+2)
123050 042766 000017 000016 BIC #17,16(SP) ;CLEAR ALL STATUS BITS
123056 010037 147654 MOV R0,$EMADR ;SAVE
123062 014000 MOV -(R0),R0 ;GET RIGHT BYTE OF EMT
123064 042700 177400 BIC #177400,R0
123070 020027 000240 CMP R0,#<<$EMTAE-$EMTAD>/2>
123074 002340 BGE $NOTAS ;EMT IN RANGE ?
SL R0,1 ;ROUND TO WORD ADDRESS
123100 016000 123106 MOV $EMTAD(R0),R0 ;INDEX TO TABLE
123104 000200 RTS R0 ;GO TO ROUTINE
.SBTTL EMT TABLE
;*THIS TABLE CONTAINS THE STARTING ADDRESSES OF THE ROUTINES CALLED
;*BY THE "EMT" INSTRUCTION.
; ROUTINE
; -------
123106 123012 $EMTAD: $FATAL ;EMT + 0
123110 115230 $ERRHLT ; 1
123112 115220 $PRGHLT ; 2
123114 107030 $RUNLP ; 3
123116 120146 $TTILIN ; 4
123120 117620 $TTICHR ; 5
123122 117652 $TTLOOK ; 6
123124 121072 $TTIOCT ; 7
123126 122406 $TTCOCT ;EMT + 10
123130 121230 $TTIDEC ; 11
123132 117744 $TTIYES ; 12
123134 117700 $TTALTM ; 13
123136 121342 $TTI36 ; 14
123140 122164 $TTIBRK ; 15
123142 122200 $TTSDL ; 16
123144 122432 $TTSDO ; 17
123146 122444 $TTS36 ;EMT + 20
123150 122456 $TICRA ; 21
123152 122324 $TTITRM ; 22
123154 122330 $TTBTRM ; 23
123156 115520 $PNTAL ; 24
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 225
SUB11 PAL[KL,SYS] Page 36.1 EMT TABLE
123160 122532 $$PMSG ; 25
123162 122524 $$PMSR ; 26
123164 115622 $PNTCHR ; 27
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 226
SUB11 PAL[KL,SYS] Page 37 EMT TABLE
123166 115612 $PNTNBR ;EMT + 30
123170 116740 $PCRLF ; 31
123172 115632 $PSPACE ; 32
123174 115640 $PSLASH ; 33
123176 115646 $PCOMMA ; 34
123200 117364 $PNTOCT ; 35
123202 117372 $PNTOSC ; 36
123204 117474 $PNTDEC ; 37
123206 117112 $PNT18 ;EMT + 40
123210 117126 $PNT23 ; 41
123212 117152 $PNT36 ; 42
123214 120044 $PFORCE ; 43
123216 120052 $PNORML ; 44
123220 116746 $PBELL ; 45
123222 116770 $PNTODC ; 46
123224 116756 $PODT ; 47
123226 122626 $REGSAV ;EMT + 50
123230 122642 $REGRST ; 51
123232 125314 $CMP36 ; 52
123234 122472 $SHFTR ; 53
123236 122510 $SHFTL ; 54
123240 124044 $SETFLG ; 55
123242 122562 $DELAY ; 56
123244 120024 $SWITCH ; 57
123246 120036 $SWTSAM ;EMT + 60
123250 115216 $EOP ; 61
123252 115216 $ERREOP ; 62
123254 115216 $EOPSET ; 63
.IF DF MONASB
$COMLIN ; 64
$COMSND ; 65
$COMACK ; 66
$COMNAK ; 67
$COMCLR ;EMT + 70
$COMCTL ; 71
.IFF
000006 .REPT 6
$FATAL ;64-71
.ENDR
123256 123012 $FATAL ;64-71
123260 123012 $FATAL ;64-71
123262 123012 $FATAL ;64-71
123264 123012 $FATAL ;64-71
123266 123012 $FATAL ;64-71
123270 123012 $FATAL ;64-71
.ENDC
123272 122056 $MULTP ; 72
123274 142364 $WCRAM ; 73
123276 142674 $RCRAM ; 74
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 227
SUB11 PAL[KL,SYS] Page 37.1 EMT TABLE
123300 142232 $WWADR ; 75
123302 141766 $MRESET ; 76
123304 125614 $TENSP ; 77
123306 125376 $SM ;EMT + 100
123310 125472 $XCT ; 101
123312 144242 $LODAR ; 102
123314 124320 $EXAM ; 103
123316 124312 $EXAMT ; 104
123320 124236 $DPOS ; 105
123322 124232 $DPOST ; 106
123324 125146 $DPOSVR ; 107
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 228
SUB11 PAL[KL,SYS] Page 38 EMT TABLE
123326 125142 $DPSVT ;EMT + 110
123330 124202 $D10MON ; 111
123332 124142 $D10ZRO ; 112
123334 141046 $DTEBAS ; 113
123336 141254 $DFXCT ; 114
123340 141224 $DXCTT ; 115
123342 141070 $DFRD ; 116
123344 141700 $DFRDMV ; 117
123346 141510 $DFWRT ;EMT + 120
123350 141470 $DFWIR ; 121
123352 141240 $DFSCLK ; 122
123354 144550 $DFPC ; 123
123356 144566 $DFVMA ; 124
123360 144574 $DFADB ; 125
123362 143450 $RDRAM ; 126
123364 143400 $WDRAM ; 127
123366 143620 $DRAMAD ;EMT + 130
123370 144052 $BURST ; 131
123372 103600 $PNTCPU ; 132
123374 101452 $PRGCMD ; 133
123376 117142 $P36B ; 134
123400 125542 $ECLOK ; 135
123402 123606 $ESYNC ; 136
123404 117044 $PADR ; 137
123406 141056 $DFRDT ;EMT + 140
123410 141730 $DWRTT ; 141
123412 126500 $PCRAM ; 142
123414 127576 $PDRAM ; 143
123416 120006 $TTBACK ; 144
123420 111762 $TENSW ; 145
123422 117344 $PROL36 ; 146
123424 144336 $SETMPH ; 147
123426 144542 $DFVMH ;EMT + 150
123430 116036 $PRINTT ; 151
123432 116172 $PTTY ; 152
.IF DF LPTASB
$PLPT ; 153
.IFF
123434 123012 $FATAL
.ENDC
123436 115662 $PLDBUF ; 154
123440 134166 $R50UPK ; 155
123442 134132 $DTINIT ; 156
.IF DF RPASB
$RPINIT ; 157
.IFF
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 229
SUB11 PAL[KL,SYS] Page 38.1 EMT TABLE
123444 123012 $FATAL
.ENDC
123446 134030 $DVDATA ;EMT + 160
123450 134476 $DTREAD ; 161
.IF DF RPASB
$RPREAD ; 162
.IFF
123452 123012 $FATAL
.ENDC
123454 133770 $DVFRAM ; 163
123456 134106 $DVWRD ; 164
123460 135122 $ASCR50 ; 165
.IF DF RPASB
$RPLOAD ; 166
$RPFIND ; 167
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 230
SUB11 PAL[KL,SYS] Page 39 EMT TABLE
$RPLKUP ;EMT + 170
$RPRDFL ; 171
$RPWRFL ; 172
$RPWRIT ; 173
$RPADDR ; 174
$RPBASE ; 175
.IFF
000010 .REPT 8
$FATAL
.ENDR
123462 123012 $FATAL
123464 123012 $FATAL
123466 123012 $FATAL
123470 123012 $FATAL
123472 123012 $FATAL
123474 123012 $FATAL
123476 123012 $FATAL
123500 123012 $FATAL
.ENDC
123502 112106 $TENCHR ; 176
123504 115766 $PNTBAK ; 177
123506 122420 $TOCTE ;EMT + 200
123510 122336 $TTERM ; 201
123512 144042 $CLKPRM ; 202
123514 143242 $MICNUL ; 203
123516 143330 $MICFIL ; 204
123520 134504 $DTWRT ; 205
123522 130676 $NAMEXT ; 206
123524 133426 $DTAFILE ; 207
.IF DF RPASB
$RPFILE ;EMT + 210
.IFF
123526 123012 $FATAL
.ENDC
123530 134366 $DTRDFL ; 211
123532 134442 $DTWTFL ; 212
123534 134470 $DTBASE ; 213
123536 122542 $PNTCI ; 214
123540 116020 $PNTRST ; 215
123542 101444 $PRGNPT ; 216
123544 116004 $TTPINI ; 217
.IF DF MONASB
$COMCMD ;EMT + 220
$CMRTRY ; 221
$COMENQ ; 222
$COMEOT ; 223
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 231
SUB11 PAL[KL,SYS] Page 39.1 EMT TABLE
.IFF
000004 .REPT 4
$FATAL
.ENDR
123546 123012 $FATAL
123550 123012 $FATAL
123552 123012 $FATAL
123554 123012 $FATAL
.ENDC
123556 120140 $TTILNW ; 224
123560 101636 $TTICCL ; 225
123562 104276 $DFLEGAL ; 226
123564 115654 $PTAB ; 227
.IF DF RXASB
$RXFILE ;EMT + 230
$RXINIT ; 231
$RXRDFL ; 232
$RXWTFL ; 233
$RXBASE ; 234
$RXREAD ; 235
$RXWRT ; 236
.IFF
000007 .REPT 7
$FATAL
.ENDR
123566 123012 $FATAL
123570 123012 $FATAL
123572 123012 $FATAL
123574 123012 $FATAL
123576 123012 $FATAL
123600 123012 $FATAL
123602 123012 $FATAL
.ENDC
.IF DF RPASB
$RPERR ; 237
.IFF
123604 123012 $FATAL
.ENDC
123606 $EMTAE=.
$ESYNC: PUSH R0
123610 000137 122776 JMP $NOTAS
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 232
SUB11 PAL[KL,SYS] Page 40 POWER DOWN AND UP ROUTINES
.SBTTL POWER DOWN AND UP ROUTINES
123614 012737 123626 000024 $PWRDN: MOV #$PWRUP,@#PWRVEC ;SET UP VECTOR
123622 000000 $ILLUP: HALT
123624 000776 BR $ILLUP ;HANG UP
;POWER UP ROUTINE
123626 012737 000140 177776 $PWRUP: MOV #CPUPR,PS ;SET CPU PRIORITY
123634 012706 157776 MOV #STACK,SP ;SET SP
.LIF DF SAILVR
123640 004737 125744 JSR PC,CLKSTA ;START CLOCK
123644 005005 CLR R5 ;WAIT LOOP FOR THE TTY
123646 005205 1$: INC R5 ;WAIT FOR THE INC
123650 001376 BNE 1$ ;OF WORD
123652 012737 123614 000024 MOV #$PWRDN,@#PWRVEC ;SET UP THE POWER DOWN VECTOR
123660 005037 077776 CLR CONSOL-2
123664 005037 157304 CLR LPTFLG ;DISCONNECT LINE PRINTER
.IF NDF TELASB
CLR DL11EFLG ;DISCONNECT KLINIK !!!
.IFF
123670 005037 152256 CLR FSFLG
123674 012777 000004 754126 MOV #DLRTS,@$FSTKS
123702 012700 116100 MOV #40000.,R0 ;40000*2.36USEC = 94.4 MS
123706 077001 SOB R0,. ;WAIT FOR DATA SET TO HANG UP
123710 052777 000046 754112 BIS #DLRTS!DLDTR!DLDIE,@$FSTKS ;SET DATA TERM READY AND DATA SET INT ENB
;LEAVE REQUEST TO SEND UP ALTHOUGH WE DON'T USE IT
.ENDC
123716 005237 157312 INC $PWRCNT ;COUNT POWER RESTARTS
.IF NDF SAILVR
MOV #KWLKS,R3
CLR R5
10$: TSTB (R3) ;WAIT FOR CLOCK TICK
BPL 10$
BIC #200,(R3)
.IFF
123722 005037 157160 CLR CLKFLG
123726 005737 157160 10$: TST CLKFLG
123732 001775 BEQ 10$
123734 005037 157160 CLR CLKFLG
.ENDC
123740 005205 INC R5 ;COUNT IT
123742 020527 000454 CMP R5,#<5.*60.> ;WAITED 5 SEC FOR TTY POWER ?
123746 003767 BLE 10$ ;NOT YET
PMSG <\"POWER RESTART" >
123750 104025 $PMSG
123752 146275 $$CLIT
123754 013700 157312 MOV $PWRCNT,R0
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 233
SUB11 PAL[KL,SYS] Page 40.1 POWER DOWN AND UP ROUTINES
123760 104037 PNTDEC
123762 104031 PCRLF
123764 005005 CLR R5 ;CLEAR TIME-UP COUNTER
123766 004737 120666 2$: JSR PC,$TIRDY ;ANY OPERATOR INTERRUPT ?
123772 103407 BCS 3$ ;NO
123774 113704 147764 MOVB $TICHR,R4 ;YES, GET CHAR
124000 142704 000200 BICB #200,R4
124004 122704 000003 CMPB #CNTRLC,R4 ;IS IT CONTROL C ?
124010 001407 BEQ 4$ ;YES, ABORT TIME-UP WAIT
3$:
.IF NDF SAILVR
TSTB (R3) ;CLOCK SET ?
BPL 2$ ;NO
BIC #200,(R3)
.IFF
124012 005737 157160 TST CLKFLG
124016 001763 BEQ 2$
.ENDC
124020 005205 INC R5 ;COUNT CLOCK TICK
124022 020527 000454 CMP R5,#<5.*60.> ;WAITED 5 SECONDS FOR KL10 ?
124026 003757 BLE 2$ ;NOT YET
124030 000137 100000 4$: JMP START
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 234
SUB11 PAL[KL,SYS] Page 41 EXIT SUBROUTINE
.SBTTL EXIT SUBROUTINE
124034 052766 000001 000014 $EXITE: BIS #CBIT,14(SP) ;SET C-BIT ERROR
124042 000407 BR $EXIT
124044 017701 023604 $SETFLG:MOV @$EMADR,R1 ;SET -1 TO FLAG WORD
124050 012711 777777 MOV #-1,(R1)
124054 062766 000002 000012 $EXITS: ADD #2,12(SP) ;SKIP RETURN
$EXIT: POP <R5,R4,R3,R2,R1>
124074 000006 1$: RTT ;RETURN TO USER
;MEMORY PARITY
124076 005737 147632 MEMPE: TST MEMPEF ;BEEN HERE ALREADY ?
124102 100001 BPL 1$
124104 104000 FATAL ;YES
124106 005137 147632 1$: COM MEMPEF ;SET FLAG
124112 042737 000001 172100 BIC #MMPIE,MMLPBA ;CLEAR ENABLE
124120 032737 100000 172100 BIT #MMERRF,MMLPBA ;ERROR SET ?
124126 001001 BNE 2$
124130 104000 FATAL ;NO, HOW DID THIS GET HERE ?
2$: PMSG <?PARITY>
124132 104025 $PMSG
124134 146317 $$CLIT
124136 000137 100004 JMP $CNTLC
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 235
SUB11 PAL[KL,SYS] Page 42 PDP10 OPERATIONS
.SBTTL PDP10 OPERATIONS
;PDP-10 MEMORY ZERO
; R0 = COUNT, R1 = POINTER TO START ADDRESS
124142 010005 $D10ZRO: MOV R0,R5 ;SAVE COUNT
124144 005305 DEC R5
124146 012704 147724 MOV #.DPXAD,R4
124152 112124 MOVB (R1)+,(R4)+
124154 112124 MOVB (R1)+,(R4)+
124156 111114 MOVB (R1),(R4)
124160 005744 TST -(R4)
124162 005077 033140 CLR @.DAT1 ;CLEAR DTE20 DATA WORDS
124166 005077 033132 CLR @.DAT2
124172 005077 033124 CLR @.DAT3
124176 010401 $D10ZX: MOV R4,R1 ;POINTER TO ADDRESS
124200 000440 BR $DPSX1
;PDP-10 SET -1 TO FLAG WORD
; ADDRESS IN TRAILING PARAMETER
124202 012701 147722 $D10MON: MOV #L10ADR+2,R1 ;SETUP 10 ADR BLOCK POINTER
124206 005011 CLR (R1)
124210 017741 023440 MOV @$EMADR,-(R1) ;PUT 10 ADR IN ADR BLOCK
124214 012700 100056 MOV #TENMO,R0 ;SETUP -1 DATA WORD
124220 062766 000002 000012 ADD #2,12(SP) ;SKIP RETURN OVER TRAILING PARAMETER
124226 005005 CLR R5
124230 000405 BR $DPOSX
;EXAMINE AND DEPOSIT 10 MEMORY
124232 004737 125350 $DPOST: JSR PC,$10ADR ;SETUP PARAMETERS
124236 005005 $DPOS: CLR R5
124240 004737 125070 JSR PC,$D10ADR ;SETUP PDP-10 ADDRESS
124244 012702 147712 $DPOSX: MOV #$TEMP0,R2 ;STUFF THE DEXWRDS
124250 112022 MOVB (R0)+,(R2)+
124252 112022 MOVB (R0)+,(R2)+
124254 112022 MOVB (R0)+,(R2)+
124256 112022 MOVB (R0)+,(R2)+
124260 112022 MOVB (R0)+,(R2)+
124262 111022 MOVB (R0),(R2)+
124264 042742 177760 BIC #177760,-(R2)
124270 013703 157326 MOV .DAT1,R3
124274 011213 MOV (R2),(R3) ;BITS 00-03 TO .DAT1
124276 014243 MOV -(R2),-(R3) ;BITS 04-19 TO .DAT2
124300 014243 MOV -(R2),-(R3) ;BITS 20-35 TO .DAT3
124302 052761 010000 000002 $DPSX1: BIS #DEP,2(R1) ;SET FLAG
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 236
SUB11 PAL[KL,SYS] Page 42.1 PDP10 OPERATIONS
124310 000414 BR $EXDEP
124312 004737 125350 $EXAMT: JSR PC,$10ADR ;SETUP PARAMETERS
124316 000405 BR $EXAMX
;EXAMINE 10 CORE. R0 POINTS TO 2 WORDS CONTAINING THE 10 ADDRESS
; (BITS 20:35 IN FIRST WORD, 14:19 IN SECOND WORD)
; RESULT RETURNED IN $DRAM (20:35), $DRAM+2 (4:19), $DRAM+4 (0:3)
124320 010001 $EXAM: MOV R0,R1
124322 004737 125070 JSR PC,$D10ADR ;SETUP PDP-10 ADDRESS
124326 012700 147502 MOV #$DRAM,R0
124332 005005 $EXAMX: CLR R5
124334 042761 010000 000002 BIC #DEP,2(R1) ;CLEAR FLAG BIT
124342 012777 000020 033004 $EXDEP: MOV #EBUSPC,@.STDTE ;E-BUS PARITY CLEAR
000001 .IF EQ EPTREL
BIS #PHYS!PRTOFF,2(R1)
.IFF
124350 053761 147444 000002 BIS $TADSP,2(R1) ;$TADSP DESIGNATES ADDR MODE
124356 012737 104000 147444 MOV #PHYS!PRTOFF,$TADSP ;RESET ADDR MODE FOR NEXT EXDEP
.ENDC
124364 005737 147604 TST VRBFLG
124370 001425 BEQ 70$
124372 032777 002000 032750 BIT #KLRUN,@.DIAG1
124400 001021 BNE 70$
PUSH R0
PUSH @.DAT1 ;IF VERBOSE AND KL IS NOT RUNNING THEN USE
PUSH @.DAT2 ;APR FLAGS TO DETERMINE NXM, ETC.
PUSH @.DAT3
124420 012700 125062 MOV #$$CLRF,R0
124424 104101 EXCT ;EXECUTE A CONO APR,23400 TO CLR NXM,IOPGF,MB PAR
POP @.DAT3
POP @.DAT2
POP @.DAT1
POP R0
124444 016177 000002 032656 70$: MOV 2(R1),@.TENA1
124452 011177 032654 MOV (R1),@.TENA2 ;START DTE20
124456 013746 100104 MOV EMTIMO,-(SP) ;SET TIMEOUT COUNT
124462 032777 000004 032664 93$: BIT #DEXDON,@.STDTE ;TEST BIT
124470 001034 BNE 94$ ;LEAVE IF NOW A ONE(OK)
124472 005316 DEC (SP) ;DECREMENT COUNT
124474 001372 BNE 93$ ;CONTINUE LOOP
124476 005737 147752 TST RPTFLG ;OTHERWISE TIMEOUT
124502 001027 BNE 94$ ;UNLESS UNDER REPEAT
124504 005737 147604 TST VRBFLG
124510 001416 BEQ 95$
PUSH R0
PMSG <EXAM/DEPOSIT TIMEOUT, ADDRESS = >
124514 104025 $PMSG
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 237
SUB11 PAL[KL,SYS] Page 42.2 PDP10 OPERATIONS
124516 146327 $$CLIT
124520 010100 MOV R1,R0
PUSH 2(R0)
124526 042760 177700 000002 BIC #177700,2(R0)
124534 104137 PNTADR
124536 104031 PCRLF
POP 2(R1)
POP R0
124546 005037 147710 95$: CLR TENRUN ;CLEAR TEN RUNNING
124552 005005 CLR R5 ;CLEAR BLOCK ZERO INDICATOR
124554 052766 000001 000016 BIS #CBIT,16(SP)
124562 005737 147604 94$: TST VRBFLG
124566 001475 BEQ 96$
124570 032777 002000 032552 BIT #KLRUN,@.DIAG1
124576 001071 BNE 96$ ;KL IS STILL RUNNING
PUSH R0
PUSH @.DAT1
PUSH @.DAT2
PUSH @.DAT3
124616 012746 000000 MOV #0,-(SP) ;PUSH FLAG
124622 012700 000110 MOV #110,R0
124626 104116 DFRD ;BIT 7 IS APR NXM ERR IN
124630 032777 010000 032466 BIT #BIT12,@.DAT2 ;BITS 4-19 (TEST BIT 7)
124636 001403 BEQ 89$ ;BRANCH IF NOT SET
124640 005216 INC (SP) ;INC FLAG
PMSG <MBOX DETECTED NXM\>
124642 104025 $PMSG
124644 146370 $$CLIT
124646 032777 002000 032450 89$: BIT #BIT10,@.DAT2 ;TEST BIT 9
124654 001403 BEQ 88$ ;EBUS BIT 9 IS APR MB PAR ERR IN
124656 005216 INC (SP)
PMSG <MB PARITY ERROR DETECTED\>
124660 104025 $PMSG
124662 146413 $$CLIT
124664 032777 004000 032432 88$: BIT #BIT11,@.DAT2 ;TEST BIT 8
124672 001403 BEQ 87$ ;EBUS BIT 8 IS APR I/O PF ERR IN
124674 005216 INC (SP)
PMSG <IOPGF (PROB AR PAR ERR) DETECTED\>
124676 104025 $PMSG
124700 146445 $$CLIT
124702 005726 87$: TST (SP)+ ;TEST AND FLUSH FLAG, ZERO IF NO ERRORS DETECTED
124704 001417 BEQ 86$ ;BRANCH IF NO ERRORS
124706 005737 147752 TST RPTFLG
124712 001414 BEQ 86$
PMSG <ADDR = > ;ERROR UNDER REPEAT, GIVE ADDRESS
124714 104025 $PMSG
124716 146507 $$CLIT
124720 010100 MOV R1,R0
PUSH 2(R0)
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 238
SUB11 PAL[KL,SYS] Page 42.3 PDP10 OPERATIONS
124726 042760 177700 000002 BIC #177700,2(R0)
124734 104137 PNTADR
124736 104031 PCRLF
POP 2(R1)
86$: POP @.DAT3
POP @.DAT2
POP @.DAT1
POP R0
124762 005726 96$: TST (SP)+ ;RESET STACK
124764 032761 010000 000002 BIT #DEP,2(R1)
124772 001020 BNE 1$ ;DEPOSIT BRANCHES
PUSH R0
124776 013703 157322 MOV .DAT3,R3
125002 012320 MOV (R3)+,(R0)+ ;BITS 20-35 FROM .DAT3
125004 012320 MOV (R3)+,(R0)+ ;BITS 04-19 FROM .DAT2
125006 011310 MOV (R3),(R0) ;BITS 00-03 FROM .DAT1
125010 042710 177760 BIC #177760,(R0)
POP R0
125016 032777 000020 032330 BIT #BPARER,@.STDTE ;E-BUS PARITY ERROR ?
125024 001403 BEQ 1$ ;NO
125026 052766 000017 000014 BIS #CBIT!VBIT!NBIT!ZBIT,14(SP) ;SET ALL COND BITS
125034 005705 1$: TST R5 ;EXAM, DPOS OR FINISHED BLOCK ZERO ?
125036 001407 BEQ 2$ ;YES
125040 005305 DEC R5 ;BLOCK ZERO, DECREMENT COUNT
125042 062714 000001 ADD #1,(R4) ;INCREMENT PDP-10 ADDRESS
125046 005564 000002 ADC 2(R4)
125052 000137 124176 JMP $D10ZX ;CLEAR NEXT WORD
2$: EXIT
125056 000137 124062 JMP $EXIT
$$CLRF: IO10 CONO,APR,,23400 ;CLEAR APR NXM, IO PG FAIL, MB PAR ERR
000000 .IIF B ,I=0
.IIF NB ,I=
000000 .IIF B ,XR=0
.IIF NB ,XR=
000002 BLKO=2
000003 DATAO=3
000000 BLKI=0
000001 DATAI=1
000004 CONO=4
000005 CONI=5
000006 CONSZ=6
000007 CONSO=7
000000 APR=0
000004 PI=4
000010 PAG=10
000014 CCA=14
000000 ADH=0
000000 ADL=0
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 239
SUB11 PAL[KL,SYS] Page 42.4 PDP10 OPERATIONS
.IRPC AD1,23400
.IIF GE <ADL-10000>,ADH=ADL/10000
ADL=10*<ADL&7777>+AD1
.ENDM
770000 .IIF GE <ADL-10000>,ADH=ADL/10000
000002 ADL=10*<ADL&7777>+2
770002 .IIF GE <ADL-10000>,ADH=ADL/10000
000023 ADL=10*<ADL&7777>+3
770023 .IIF GE <ADL-10000>,ADH=ADL/10000
000234 ADL=10*<ADL&7777>+4
770234 .IIF GE <ADL-10000>,ADH=ADL/10000
002340 ADL=10*<ADL&7777>+0
772340 .IIF GE <ADL-10000>,ADH=ADL/10000
023400 ADL=10*<ADL&7777>+0
125070 .EVEN
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 240
SUB11 PAL[KL,SYS] Page 43 PDP10 OPERATIONS
125070 012704 147720 $D10ADR:MOV #L10ADR,R4
125074 112124 MOVB (R1)+,(R4)+
125076 112124 MOVB (R1)+,(R4)+
125100 111114 MOVB (R1),(R4)
125102 042714 177700 BIC #177700,(R4)
125106 012701 147720 MOV #L10ADR,R1
125112 000207 RTS PC
125114 077
125115 105
125116 055
125117 102
125120 125
125121 123
125122 040
125123 120
125124 101
125125 122
125126 111
125127 124
125130 131
125131 040
125132 105
125133 122
125134 122
125135 117
125136 122
125137 040
125140 000
$EBPAR: .ASCIZ/?E-BUS PARITY ERROR /
125142 .EVEN
125142 004737 125350 $DPSVT: JSR PC,$10ADR ;SETUP PARAMETERS
$DPOSVR:PUSH R0
.IIF NZ EPTREL, PUSH $TADSP ;PUSH ADDRESS SPACE
125154 104105 DPOS
125156 103417 BCS $DPVRP
.IIF NZ EPTREL, POP $TADSP ;USE SAME ADDRESS SPACE FOR VERIFY
125164 010100 MOV R1,R0
125166 104103 EXAM
125170 103417 BCS $DPVRE
125172 011600 MOV (SP),R0
PUSH R1 ;SAVE ADDRESS
125176 012701 147502 MOV #$DRAM,R1
125202 104052 CMPR36
125204 103415 BCS $DPVRV ;VERIFY ERROR
$DPVRY: POP R1
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 241
SUB11 PAL[KL,SYS] Page 43.1 PDP10 OPERATIONS
$DPVRX: POP R0
EXIT
125212 000137 124062 JMP $EXIT
$DPVRP: ;DEPOSIT HALF OF DEPOSIT VERIFY LOST.
125216 005726 .IIF NZ EPTREL, TST (SP)+ ;ADJUST STACK (REMOVE ADDR. SPACE)
125220 052766 000011 000016 BIS #CBIT!NBIT,16(SP)
125226 000770 BR $DPVRX ;NO, JUST GIVE ERROR RETURN
125230 052766 000005 000016 $DPVRE: BIS #CBIT!ZBIT,16(SP) ;EXAMINE HALF OF DEPOSIT VERIFY LOST
125236 000764 BR $DPVRX
125240 052766 000003 000020 $DPVRV: BIS #CBIT!VBIT,20(SP) ;SET C & V FOR VERIFY ERROR
125246 005737 147604 TST VRBFLG
125252 001755 BEQ $DPVRY
PMSG <\ADDRESS = >
125254 104025 $PMSG
125256 146517 $$CLIT
POP R0
125262 104137 PNTADR
PMSG <DEPOSIT DATA = >
125264 104025 $PMSG
125266 146533 $$CLIT
POP R0
125272 104042 PNT36
PMSG < EXAMINE DATA = >
125274 104025 $PMSG
125276 146553 $$CLIT
125300 012700 147502 MOV #$DRAM,R0
125304 104042 PNT36
125306 104031 PCRLF
EXIT
125310 000137 124062 JMP $EXIT
;5-BYTE COMPARE ROUTINE, C & V BIT SET IF ERROR
$CMP36: PUSH R1
125316 012702 000005 MOV #5,R2
125322 122021 1$: CMPB (R0)+,(R1)+
125324 001003 BNE 2$
125326 005302 DEC R2
125330 001374 BNE 1$
125332 000403 BR 3$
125334 052766 000003 000016 2$: BIS #CBIT!VBIT,16(SP) ;SET C & V FOR VERIFY ERROR
3$: POP R0 ;POINT TO ACTUAL
EXIT
125344 000137 124062 JMP $EXIT
;PDP-10 ADDRESS PARAMETER SETUP
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 242
SUB11 PAL[KL,SYS] Page 43.2 PDP10 OPERATIONS
125350 013705 147654 $10ADR: MOV $EMADR,R5 ;SETUP TRAILING PARAMETER PICKUP
125354 012701 147722 MOV #L10ADR+2,R1 ;SETUP 10 ADR BLOCK POINTER
125360 005011 CLR (R1) ;CLEAR HI ADR
125362 012541 MOV (R5)+,-(R1) ;SETUP PDP-10 ADDRESS
125364 011500 MOV (R5),R0 ;POINTER TO DATA BLOCK IN R0
125366 062766 000004 000014 ADD #4,14(SP) ;RETURN OVER TRAILING PARAMETERS
125374 000207 RTS PC
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 243
SUB11 PAL[KL,SYS] Page 44 PDP10 OPERATIONS
;START MICROCODE
$SM: PUSH R0
125400 104076 MRESET ;RESET KL10
125402 005000 CLR R0 ;SELECT UCODE START ADR
125404 104075 WWADR
125406 104115 DFXCTT ;GET CLOCK GOING
125410 000001 STRCLK
125412 012701 000002 MOV #2,R1
125416 012700 125460 MOV #$SMTAB,R0
1$: PUSH R0
125424 104101 EXCT ;DO TEN INSTR
125426 103410 BCS 2$
POP R0
125432 062700 000005 ADD #5,R0 ;NEXT
125436 005301 DEC R1
125440 001370 BNE 1$
POP R0
EXIT
125444 000137 124062 JMP $EXIT
2$: POP R0
POP R0
$SMERR: EXITERR
125454 000137 124034 JMP $EXITE
$SMTAB: IO10 CONO,APR,,200000 ;IO SYS CLEAR
000000 .IIF B ,I=0
.IIF NB ,I=
000000 .IIF B ,XR=0
.IIF NB ,XR=
000002 BLKO=2
000003 DATAO=3
000000 BLKI=0
000001 DATAI=1
000004 CONO=4
000005 CONI=5
000006 CONSZ=6
000007 CONSO=7
000000 APR=0
000004 PI=4
000010 PAG=10
000014 CCA=14
000000 ADH=0
000000 ADL=0
.IRPC AD1,200000
.IIF GE <ADL-10000>,ADH=ADL/10000
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 244
SUB11 PAL[KL,SYS] Page 44.1 PDP10 OPERATIONS
ADL=10*<ADL&7777>+AD1
.ENDM
770000 .IIF GE <ADL-10000>,ADH=ADL/10000
000002 ADL=10*<ADL&7777>+2
770002 .IIF GE <ADL-10000>,ADH=ADL/10000
000020 ADL=10*<ADL&7777>+0
770020 .IIF GE <ADL-10000>,ADH=ADL/10000
000200 ADL=10*<ADL&7777>+0
770200 .IIF GE <ADL-10000>,ADH=ADL/10000
002000 ADL=10*<ADL&7777>+0
772000 .IIF GE <ADL-10000>,ADH=ADL/10000
020000 ADL=10*<ADL&7777>+0
000002 .IIF GE <ADL-10000>,ADH=ADL/10000
000000 ADL=10*<ADL&7777>+0
IO10 CONO,PI,,10000 ;PI SYS CLEAR
000000 .IIF B ,I=0
.IIF NB ,I=
000000 .IIF B ,XR=0
.IIF NB ,XR=
000002 BLKO=2
000003 DATAO=3
000000 BLKI=0
000001 DATAI=1
000004 CONO=4
000005 CONI=5
000006 CONSZ=6
000007 CONSO=7
000000 APR=0
000004 PI=4
000010 PAG=10
000014 CCA=14
000000 ADH=0
000000 ADL=0
.IRPC AD1,10000
.IIF GE <ADL-10000>,ADH=ADL/10000
ADL=10*<ADL&7777>+AD1
.ENDM
770000 .IIF GE <ADL-10000>,ADH=ADL/10000
000001 ADL=10*<ADL&7777>+1
770001 .IIF GE <ADL-10000>,ADH=ADL/10000
000010 ADL=10*<ADL&7777>+0
770010 .IIF GE <ADL-10000>,ADH=ADL/10000
000100 ADL=10*<ADL&7777>+0
770100 .IIF GE <ADL-10000>,ADH=ADL/10000
001000 ADL=10*<ADL&7777>+0
771000 .IIF GE <ADL-10000>,ADH=ADL/10000
010000 ADL=10*<ADL&7777>+0
125472 .EVEN
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 245
SUB11 PAL[KL,SYS] Page 45 PDP10 OPERATIONS
;PDP-10 INSTRUCTION EXECUTE
125472 104102 $XCT: LODAR
125474 103417 BCS 6$
125476 104115 DFXCTT ;SET CONTINUE BUTTON
125500 000012 CONBUT
125502 104115 DFXCTT ;RUN THE CLOCK
125504 000001 STRCLK
125506 005737 147752 TST RPTFLG ;DOING REPEAT ?
125512 001011 BNE 2$ ;YES, NO CHECK
125514 012701 001750 MOV #1000.,R1
125520 032777 001000 031622 4$: BIT #HALTLP,@.DIAG1
125526 001003 BNE 2$
125530 005301 DEC R1 ;NO, WAITED LONG ENOUGH
125532 001372 BNE 4$
125534 000747 6$: BR $SMERR
2$: EXIT
125536 000137 124062 JMP $EXIT
;ECLOK - GIVE A COMPLETE EBOX CLOCK
125542 012705 007640 $ECLOK: MOV #4000.,R5
125546 104122 91$: DFSCLK ;STEP RAW CLOCK
125550 104140 DFRDT ;READ CLOCK STATE
125552 000104 104
125554 032777 000004 031540 BIT #BIT2,@.DAT3 ;CLK E BOX SOURCE HIGH ?
125562 001010 BNE 92$
125564 005305 DEC R5
125566 001367 BNE 91$
125570 005737 147752 TST RPTFLG
125574 001003 BNE 92$
125576 052766 000001 000014 BIS #CBIT,14(SP) ;REPORT TIMEOUT
125604 104115 92$: DFXCTT
125606 000004 CECLK
EXIT
125610 000137 124062 JMP $EXIT
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 246
SUB11 PAL[KL,SYS] Page 46 PDP10 OPERATIONS
;PDP-10 CONTROLLED STOP ROUTINE
$TENSP: PUSH R0
125616 005037 147710 CLR TENRUN ;CLEAR LOGICAL TEN RUNNING FLAG
;;;;; CLR TENCLK ;CLEAR TEN USING CLOCK FLAG
;;;;; DON'T CLEAR TENCLK. YOU MIGHT WANT TO CONTINUE THE SYSTEM
125622 012777 010201 031520 MOV #DCOMST!DFUNC!<CLRRUN*1000>,@.DIAG1
125630 004737 141412 JSR PC,$$DFXDN ;CLEAR RUN FLOP
125634 012701 001750 MOV #1000.,R1
125640 032777 001000 031502 1$: BIT #HALTLP,@.DIAG1
125646 001003 BNE 2$ ;TEN RETURNED TO HALT LOOP
125650 005301 DEC R1
125652 001372 BNE 1$
125654 000430 BR 5$ ;FAILED TO RETURN TO HALT LOOP
125656 104140 2$: DFRDT
125660 000131 131
125662 032777 000002 031434 BIT #BIT1,@.DAT2 ;BIT 18, CON CACHE LOOK
125670 001417 BEQ 4$ ;FALSE, CACHE IS NOT ON
125672 012700 104425 MOV #$$CF,R0
125676 104101 EXCT ;EXECUTE CACHE FLUSH
125700 103416 BCS 5$ ;FAILED
125702 012701 001750 MOV #1000.,R1
125706 104140 3$: DFRDT
125710 000110 110
125712 032777 000004 031406 BIT #BIT2,@.DAT1 ;BIT 1, SWEEP BUSY ENABLE
125720 001403 BEQ 4$ ;FINISHED SWEEP
125722 005301 DEC R1
125724 001370 BNE 3$
125726 000403 BR 5$ ;FAILED TO FINISH CACHE SWEEP
4$: POP R0 ;SUCESSFUL RETURN
EXIT
125732 000137 124062 JMP $EXIT
5$: POP R0 ;FAILED RETURN
EXITERR
125740 000137 124034 JMP $EXITE
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 247
SUB11 PAL[KL,SYS] Page 47 CLOCK INITIALIZATION, INTERRUPTS
.SBTTL CLOCK INITIALIZATION, INTERRUPTS
.IF DF SAILVR
CLKSTA: PUSH R0
125746 012700 000100 MOV #KWLIV,R0
125752 012720 126052 MOV #CLKINT,(R0)+
125756 012710 000140 MOV #CPUPR,(R0)
125762 005037 157162 CLR KTIMBS ;ASSUME WE'RE NOT KEEPING TIMEBASE
125766 012700 157164 MOV #TIMBAS,R0
125772 005020 CLR (R0)+
125774 005020 CLR (R0)+
125776 005010 CLR (R0)
126000 012700 157172 MOV #TIM11,R0
126004 005020 CLR (R0)+
126006 005020 CLR (R0)+
126010 005010 CLR (R0)
126012 005037 157160 CLR CLKFLG
126016 042737 000300 177546 BIC #300,KWLKS ;CLEAR CLOCK FLAG AND INTERRUPT ENABLE
126024 105737 177546 1$: TSTB KWLKS
126030 100375 BPL 1$ ;LOOP UNTIL CLOCK FLAG COMES ON
126032 042737 000200 177546 BIC #200,KWLKS ;CLEAR CLOCK FLAG
126040 052737 000100 177546 BIS #100,KWLKS ;SET INTERRUPT ENABLE.
POP R0
126050 000207 RTS PC
126052 042737 000200 177546 CLKINT: BIC #200,KWLKS ;CLEAR CLOCK FLAG
126060 005237 157160 INC CLKFLG ;INCREMENT SOFTWARE CLOCK FLAG
126064 005237 157172 INC TIM11
126070 005537 157174 ADC TIM11+2
126074 005537 157176 ADC TIM11+4
126100 005737 152254 TST FSCLKA
126104 001425 BEQ 3$ ;NO FS CLOCK REQUESTS
126106 023737 157176 152252 CMP TIM11+4,FSRTIM+4
126114 003012 BGT 2$
126116 001020 BNE 3$
126120 023737 157174 152250 CMP TIM11+2,FSRTIM+2
126126 003005 BGT 2$
126130 001013 BNE 3$
126132 023737 157172 152246 CMP TIM11,FSRTIM
126140 002407 BLT 3$
2$: PUSH R0
126144 013700 152254 MOV FSCLKA,R0
126150 005037 152254 CLR FSCLKA
126154 004710 JSR PC,@R0
POP R0
126160 005737 157162 3$: TST KTIMBS
126164 001406 BEQ 4$ ;JUMP IF NOT KEEPING A TIMEBASE
126166 005237 157164 INC TIMBAS
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 248
SUB11 PAL[KL,SYS] Page 47.1 CLOCK INITIALIZATION, INTERRUPTS
126172 005537 157166 ADC TIMBAS+2
126176 005537 157170 ADC TIMBAS+4
126202 032777 000004 751620 4$: BIT #DLRTS,@$FSTKS ;SEE IF REQUEST TO SEND IS UP (CLEARED BY INIT)
126210 001002 BNE 5$ ;YES, HAVEN'T BEEN RESET
126212 004737 114050 JSR PC,HANGU1
126216 005737 157142 5$: TST TIMFLG ;DOES KL WANT TIME/DATE FROM BATTERY CLOCK?
126222 001406 BEQ 6$ ;NO
126224 032737 007777 157172 BIT #7777,TIM11 ;IS IT TIME YET? (EVERY 10000 TICS=1.13 SECS)
126232 001002 BNE 6$ ;NO
126234 005237 157140 INC TMSFLG ;TELL C10COP TO STORE THE TIME
126240 000006 6$: RTT ;DISMISS INTERRUPT
.ENDC
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 249
KLDCP PAL[KL,SYS] Page 5.4 CLOCK INITIALIZATION, INTERRUPTS
;KL10 C-Ram/D-Ram functions
.INSRT FD11.PAL
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 250
FD11 PALII[KL,SYS] Page 1 CLOCK INITIALIZATION, INTERRUPTS
COMMENT ⊗ VALID 00015 PAGES
C REC PAGE DESCRIPTION
C00001 00001
C00003 00002 .SBTTL CONTROL RAM CONSOLE FUNCTIONS, 9-SEPTEMBER-75
C00004 00003 3$: MOV R0,$ECADR SAVE C-RAM ADDRESS
C00006 00004 FIELD PRINT OUT, THIS IS THE C-RAM BIT FIDDLER
C00008 00005 READ THE C-RAM AND PRINT ACTUAL BY E-BUS ARRANGMENT
C00009 00006 JSR PC,$$ECA PRINT C-RAM ADDRESS
C00010 00007 .SBTTL DISPATCH RAM CONSOLE FUNCTIONS
C00011 00008 TTISDO READ "J" FIELD
C00012 00009 TTISDO READ ODD "J" FIELD
C00014 00010 EXAMINE D-RAM SUBROUTINE
C00015 00011 PRINT D-RAM IN LOGICAL FIELD FORMAT
C00017 00012 .SBTTL DEPOSIT C-RAM SUBROUTINE
C00018 00013 C-RAM PRIMARY DECISION TABLE
C00020 00014 C-RAM SECONDARY DECISION TABLES
C00022 00015
C00023 ENDMK
C⊗;
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 251
FD11 PALII[KL,SYS] Page 2 CONTROL RAM CONSOLE FUNCTIONS, 9-SEPTEMBER-75
.SBTTL CONTROL RAM CONSOLE FUNCTIONS, 9-SEPTEMBER-75
126242 104226 $EC: DFLEGAL ;FUNCTION LEGAL ?
126244 104016 TTISDL
126246 103402 BCS 8$ ;NON-NUMBER
126250 104021 1$: TTICRA ;READ IN C-RAM ADDRESS
126252 000432 BR 3$
126254 102005 8$: BVC 82$
126256 013700 147744 MOV $ECADR,R0 ;COLON, READ & LIST SAME CRAM ADDRESS
126262 005237 150736 INC $INPTC
126266 000426 BR 33$
126270 104023 82$: TTBTRM
126272 $ALLEC=.
126272 104140 DFRDT ;EXAMINE PRESENT C-RAM OUTPUT
126274 000146 RCRAM2
126276 004737 126450 JSR PC,$ECGET
PUSH $ECADR
126306 104140 DFRDT ;READ HIGH ORDER BITS
126310 000147 RCRAM1
POP R0 ;LOW ORDER TO R0
126314 004737 126450 JSR PC,$ECGET
126320 006300 ASL R0 ;POSITION TO 6-0
126322 006300 ASL R0
126324 000300 SWAB R0
126326 150037 147744 BISB R0,$ECADR ;STUFF LOW ORDER
126332 012700 777777 MOV #-1,R0 ;-1 READS CURRENT C-RAM OUTPUT
126336 000402 BR 33$
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 252
FD11 PALII[KL,SYS] Page 3 CONTROL RAM CONSOLE FUNCTIONS, 9-SEPTEMBER-75
126340 010037 147744 3$: MOV R0,$ECADR ;SAVE C-RAM ADDRESS
126344 104074 33$: RCRAM ;READ THE RAM ADDRESS
126346 010037 147736 MOV R0,$ADR1 ;SAVE STARTING ADDRESS OF DATA LIST
126352 005737 147754 TST ALLFLG
126356 001025 BNE 91$
126360 104031 9$: PCRLF ;PRINT OCTAL VALUE OF C-RAM
126362 004737 127024 JSR PC,$$ECA ;PRINT C-RAM ADDRESS
126366 013705 147736 MOV $ADR1,R5 ;GET C-RAM DATA LIST ADDRESS
126372 062705 000012 ADD #12,R5
126376 011504 MOV (R5),R4 ;SAVE SPEC
126400 014500 MOV -(R5),R0 ;PRINT 1ST C-RAM WORD, LAST IN LIST
126402 104035 PNTOCT
126404 014500 MOV -(R5),R0 ;PRINT 2ND C-RAM WORD
126406 104035 PNTOCT
126410 014500 MOV -(R5),R0 ;PRINT 3RD C-RAM WORD
126412 104035 PNTOCT
126414 014500 MOV -(R5),R0 ;PRINT 4TH C-RAM WORD
126416 104035 PNTOCT
126420 014500 MOV -(R5),R0 ;PRINT 5TH C-RAM WORD
126422 104035 PNTOCT
126424 010400 MOV R4,R0 ;PRINT 6TH C-RAM WORD (SPEC)
126426 104047 PNTODT
126430 000002 2
126432 013700 147744 91$: MOV $ECADR,R0
126436 013701 147736 MOV $ADR1,R1
126442 104142 PNTCRM ;PRINT C-RAM BY LOGICAL FIELDS
126444 000137 102262 JMP ALLEXT
126450 017737 030650 147744 $ECGET: MOV @.DAT2,$ECADR ;GET BITS 4,5
126456 117737 030644 147744 MOVB @.DAT1,$ECADR ;GET BITS 0-3
126464 000337 147744 SWAB $ECADR
126470 042737 170077 147744 BIC #170077,$ECADR
126476 000207 RTS PC
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 253
FD11 PALII[KL,SYS] Page 4 CONTROL RAM CONSOLE FUNCTIONS, 9-SEPTEMBER-75
;FIELD PRINT OUT, THIS IS THE C-RAM BIT FIDDLER
126500 010037 147744 $PCRAM: MOV R0,$ECADR
126504 010137 147736 MOV R1,$ADR1
91$: PMSG <\ LOC/ J T AR AD BR MQ FM SCAD SC FE SH # VMA MEM COND SPEC M\>
126510 104025 $PMSG
126512 146574 $$CLIT
126514 004737 127024 JSR PC,$$ECA ;PRINT C-RAM ADDRESS
126520 012705 130060 $DCTPC: MOV #$CRMD0,R5 ;GET PRIMARY DECISION TABLE ADDRESS
126524 005000 $DCTP1: CLR R0
126526 012504 MOV (R5)+,R4 ;R4=SECONDARY DECISION TABLE ADDRESS
126530 001426 BEQ $END ;WOW WE MADE IT TO THE END
126532 112403 2$: MOVB (R4)+,R3 ;GET A BYTE FROM SECONDARY TABLE
126534 001416 BEQ $NEXT ;GET NEXT FIELD
126536 110302 MOVB R3,R2 ;CALCULATE BYTE LOCATION
126540 106203 ASRB R3 ;/2
126542 106203 ASRB R3 ;/4
126544 106203 ASRB R3 ;/8
126546 063703 147736 ADD $ADR1,R3
126552 111303 MOVB (R3),R3 ;FETCH THE DATA BYTE
126554 142702 000370 BICB #370,R2 ;R2=BIT LOCATION
126560 106203 3$: ASRB R3 ;CALCULATE BIT LOCATION
126562 005302 DEC R2 ;FOUND BIT YET
126564 002375 BGE 3$
126566 006100 ROL R0 ;PLACE BIT IN R0
126570 000760 BR 2$
126572 112501 $NEXT: MOVB (R5)+,R1 ;R1=OCTAL CHARACTERS IN NUMBER
126574 104046 PNTODC ;PRINT THE NUMBER
126576 112501 MOVB (R5)+,R1 ;R1=POST SPACING PARAMETER
126600 004737 117774 JSR PC,$PNTSPC
126604 000747 BR $DCTP1
126606 013705 147736 $END: MOV $ADR1,R5 ;SPECIAL PRINT OF SPEC FIELD
126612 116500 000012 MOVB 12(R5),R0
126616 104047 PNTODT
126620 000002 2
126622 104032 PSPACE
126624 116500 000004 MOVB 4(R5),R0
126630 104053 SHIFTR
126632 000004 4
126634 042700 177776 BIC #177776,R0
126640 104036 PNTOCS
126642 005737 147754 TST ALLFLG
126646 001401 BEQ 1$
126650 104031 PCRLF
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 254
FD11 PALII[KL,SYS] Page 4.1 CONTROL RAM CONSOLE FUNCTIONS, 9-SEPTEMBER-75
1$: EXIT
126652 000137 124062 JMP $EXIT
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 255
FD11 PALII[KL,SYS] Page 5 CONTROL RAM CONSOLE FUNCTIONS, 9-SEPTEMBER-75
;READ THE C-RAM AND PRINT ACTUAL BY E-BUS ARRANGMENT
126656 104226 $RC: DFLEGAL ;FUNCTION LEGAL ?
126660 104016 TTISDL
126662 103443 BCS 3$ ;NON-NUMBER
126664 000426 BR 2$ ;NUMBER, MUST BE ADDRESS
126666 012700 000147 1$: MOV #RCRAM1,R0
126672 004537 127006 JSR R5,$RCP ;FIRST 36
126676 012700 000146 MOV #RCRAM2,R0
126702 004537 127006 JSR R5,$RCP ;2ND 36
126706 012700 000145 MOV #RCRAM3,R0
126712 004537 127006 JSR R5,$RCP ;3RD 36
126716 012700 000144 MOV #RCRAM4,R0
126722 004537 127006 JSR R5,$RCP ;4TH 36
126726 005737 147752 TST RPTFLG
126732 001001 BNE 11$
126734 104031 PCRLF
126736 000137 100230 11$: JMP $KONSL
126742 104021 2$: TTICRA ;GET C-RAM ADDRESS
126744 010037 147744 MOV R0,$ECADR
126750 013700 147744 5$: MOV $ECADR,R0
126754 104075 WWADR ;WRITE C-RAM ADDRESS
126756 104122 DFSCLK
126760 104122 DFSCLK
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 256
FD11 PALII[KL,SYS] Page 6 CONTROL RAM CONSOLE FUNCTIONS, 9-SEPTEMBER-75
126762 004737 127024 JSR PC,$$ECA ;PRINT C-RAM ADDRESS
126766 104032 PSPACE
126770 000736 BR 1$
126772 102003 3$: BVC 32$
126774 005237 150736 INC $INPTC ;COLON, READ SAME C-RAM ADDRESS
127000 000763 BR 5$
127002 104023 32$: TTBTRM ;READ PRESENT C-RAM ADDRESS
127004 000730 BR 1$
127006 012701 147730 $RCP: MOV #.DFRDA,R1
127012 104117 DFRDMV ;READ C-RAM
127014 010100 MOV R1,R0
127016 104042 PNT36 ;PRINT IT
127020 104032 PSPACE
127022 000205 1$: RTS R5
;PRINT C-RAM ADDRESS
127024 013700 147744 $$ECA: MOV $ECADR,R0
127030 104047 PNTODT
127032 000004 4
127034 104033 PSLASH
127036 000207 RTS PC
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 257
FD11 PALII[KL,SYS] Page 7 DISPATCH RAM CONSOLE FUNCTIONS
.SBTTL DISPATCH RAM CONSOLE FUNCTIONS
;LOAD D-RAM SUBROUTINE
127040 000137 113452 $DDNPR: JMP $PARAM
127044 104226 $DD: DFLEGAL ;FUNCTION LEGAL ?
127046 104017 TTISDO ;GET THE ADDRESS
127050 032700 000001 BIT #1,R0
127054 001005 BNE 98$ ;MUST BE EVEN ADDRESS
127056 010037 147740 MOV R0,$ADR ;SAVE THE ADDRESS
127062 020027 000776 CMP R0,#776 ;TEST ADDRESS SIZE
127066 003402 BLE 2$
127070 000137 113350 98$: JMP ADRERR
127074 104015 2$: TTIBRK ;READ A CHARACTER
127076 103760 BCS $DDNPR ;NO COLON
127100 120027 000072 CMPB R0,#': ;IS IT A COLON
127104 001403 BEQ 21$
127106 120027 000057 CMPB R0,#'/
127112 001352 BNE $DDNPR
127114 004737 127432 21$: JSR PC,$DDA ;READ A FIELD
127120 010037 147502 MOV R0,$DRAM ;STORE "A" FIELD
127124 004737 127446 JSR PC,$DDB
127130 050037 147502 BIS R0,$DRAM ;STORE "B" FIELD
127134 104017 TTISDO ;READ "P" FIELD
127136 042700 177776 BIC #177776,R0 ;SAVE "P" FIELD
127142 104054 SHIFTL
127144 000005 5
127146 050037 147502 BIS R0,$DRAM
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 258
FD11 PALII[KL,SYS] Page 8 DISPATCH RAM CONSOLE FUNCTIONS
127152 104017 TTISDO ;READ "J" FIELD
127154 020027 001777 CMP R0,#1777
127160 003404 BLE 3$
127162 $DDSIZ=.
PMSG <\J SIZE ERR>
127162 104025 $PMSG
127164 146677 $$CLIT
127166 000137 100004 JMP $CNTLC
127172 010037 147510 3$: MOV R0,$DRAM+6 ;SAVE FOR COMMON
127176 042700 177760 BIC #177760,R0
127202 050037 147502 BIS R0,$DRAM ;SAVE "J" EVEN
;DONE WITH EVEN NOW PROMPT FOR ODD
$DRAMO: PMSG < DD > ;PROMPT
127206 104025 $PMSG
127210 146713 $$CLIT
127212 013700 147740 MOV $ADR,R0 ;ODD ADDRESS
127216 005200 INC R0
127220 104036 PNTOCS
PMSG <:←> ;PRINT COLON, OUTPUT
127222 104025 $PMSG
127224 146720 $$CLIT
127226 104004 TTILIN
127230 103703 BCS $DDNPR
127232 004737 127432 JSR PC,$DDA ;READ ODD "A" FIELD
127236 010037 147504 MOV R0,$DRAM+2 ;INSERT ODD "A" FIELD
127242 004737 127446 JSR PC,$DDB ;READ ODD "B" FIELD
127246 050037 147504 BIS R0,$DRAM+2
127252 104017 TTISDO ;READ ODD "P" FIELD
127254 042700 177776 BIC #177776,R0
127260 104054 SHIFTL
127262 000005 5
127264 050037 147504 BIS R0,$DRAM+2
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 259
FD11 PALII[KL,SYS] Page 9 DISPATCH RAM CONSOLE FUNCTIONS
127270 104017 TTISDO ;READ ODD "J" FIELD
127272 020027 001777 CMP R0,#1777
127276 003331 BGT $DDSIZ
127300 010037 147512 1$: MOV R0,$DRAM+10 ;SAVE FOR COMMON
127304 042700 177760 BIC #177760,R0
127310 050037 147504 BIS R0,$DRAM+2 ;SAVE "J" ODD
127314 042737 000017 147510 BIC #17,$DRAM+6
127322 042737 000017 147512 BIC #17,$DRAM+10
127330 023737 147510 147512 CMP $DRAM+6,$DRAM+10 ;ARE BOTH COMMONS THE SAME ?
127336 001410 BEQ 2$
127340 022737 000254 147740 CMP #254,$ADR ;IS THIS JRST/JFCL ?
127346 001404 BEQ 2$ ;YES, COMMONS MAY BE DIFFERENT
PMSG <\J CMN ERR>
127350 104025 $PMSG
127352 146723 $$CLIT
127354 000137 100004 JMP $CNTLC
127360 013700 147512 2$: MOV $DRAM+10,R0 ;USE ODD COMMON
SR R0,6
127400 010037 147506 MOV R0,$DRAM+4 ;INSERT "J" COMMON
127404 013700 147740 MOV $ADR,R0
127410 012701 147502 MOV #$DRAM,R1
127414 104076 MRESET
127416 104127 WDRAM ;WRITE THE D-RAM
127420 104031 PCRLF
127422 000137 100230 JMP @#$KONSL
127426 000137 113452 99$: JMP $OCTN
127432 104017 $DDA: TTISDO ;READ "A" FIELD
127434 104054 SHIFTL
127436 000013 11.
127440 042700 143777 BIC #143777,R0
127444 000207 RTS PC
127446 104017 $DDB: TTISDO ;READ "B" FIELD
127450 104054 SHIFTL
127452 000010 8.
127454 042700 174377 BIC #174377,R0
127460 000207 RTS PC
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 260
FD11 PALII[KL,SYS] Page 10 DISPATCH RAM CONSOLE FUNCTIONS
;EXAMINE D-RAM SUBROUTINE
127462 000137 113452 $EDNOA: JMP $OCTN
127466 000137 113350 $EDODD: JMP ADRERR
127472 104226 $ED: DFLEGAL ;FUNCTION LEGAL ?
127474 104016 TTISDL
127476 103413 BCS 5$
127500 104017 TTISDO ;READ THE ADDRESS
127502 032700 000001 BIT #1,R0
127506 001367 BNE $EDODD ;MUST BE EVEN ADDRESS
127510 010037 147742 MOV R0,$EDADR
127514 020027 000777 4$: CMP R0,#777 ;TEST FOR HIGHEST ADDRESS
127520 003414 BLE 2$
127522 000137 113350 41$: JMP ADRERR
127526 102005 5$: BVC 52$
127530 013700 147742 51$: MOV $EDADR,R0 ;COLON, EXAMINE SAME DRAM ADDRESS
127534 005237 150736 INC $INPTC
127540 000765 BR 4$
127542 104023 52$: TTBTRM
127544 013700 147742 MOV $EDADR,R0
127550 000761 BR 4$
127552 010037 147742 2$: MOV R0,$EDADR
127556 104076 MRESET
127560 104126 RDRAM ;READ D-RAM
127562 010001 MOV R0,R1
127564 013700 147742 MOV $EDADR,R0
127570 104143 PNTDRM ;PRINT D-RAM
127572 000137 100230 JMP $KONSL
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 261
FD11 PALII[KL,SYS] Page 11 DISPATCH RAM CONSOLE FUNCTIONS
;PRINT D-RAM IN LOGICAL FIELD FORMAT
127576 010005 $PDRAM: MOV R0,R5
PMSG <\ADR: A B P J\>
127600 104025 $PMSG
127602 146736 $$CLIT
127604 016100 000004 MOV 4(R1),R0 ;POSITION COMMON J-FIELD
127610 104054 SHIFTL
127612 000006 6 ;FOR PRINTING
127614 010002 MOV R0,R2
127616 005004 CLR R4
127620 010500 1$: MOV R5,R0 ;PRINT D-RAM ADDRESS
127622 104047 PNTODT
127624 000003 3
127626 104033 PSLASH
127630 104032 PSPACE
127632 011100 MOV (R1),R0 ;PRINT A-FIELD
127634 104053 SHIFTR
127636 000013 11.
127640 104030 PNTNBR
127642 104032 PSPACE
127644 011100 MOV (R1),R0 ;PRINT B-FIELD
127646 104053 SHIFTR
127650 000010 8.
127652 104030 PNTNBR
127654 104032 PSPACE
127656 011100 MOV (R1),R0 ;PRINT PARITY
127660 104053 SHIFTR
127662 000005 5
127664 042700 177776 BIC #177776,R0
127670 104030 PNTNBR
127672 104032 PSPACE
127674 012100 MOV (R1)+,R0 ;PRINT J-FIELD
127676 042700 177760 BIC #177760,R0
127702 050200 BIS R2,R0
127704 104047 PNTODT
127706 000004 4
127710 104031 PCRLF
127712 005704 TST R4 ;COMPLETED D-RAM PAIR ?
127714 001003 BNE 2$
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 262
FD11 PALII[KL,SYS] Page 11.1 DISPATCH RAM CONSOLE FUNCTIONS
127716 005204 INC R4 ;NO, SET FLAG
127720 005205 INC R5 ;SETUP ODD ADDRESS
127722 000736 BR 1$ ;GO DO ODD PRINTOUT
2$: EXIT
127724 000137 124062 JMP $EXIT
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 263
FD11 PALII[KL,SYS] Page 12 DEPOSIT C-RAM SUBROUTINE
.SBTTL DEPOSIT C-RAM SUBROUTINE
127730 000137 113452 $DCNCL: JMP $PARAM
127734 104226 $DC: DFLEGAL ;FUNCTION LEGAL ?
127736 104021 TTICRA
127740 010037 147740 2$: MOV R0,$ADR ;SAVE ADDRESS
127744 104015 TTIBRK ;GET THE COLON
127746 103770 BCS $DCNCL
127750 120027 000072 CMPB R0,#':
127754 001403 BEQ 20$
127756 120027 000057 CMPB R0,#'/
127762 001362 BNE $DCNCL ;NO COLON
127764 012705 150024 20$: MOV #$TTSAV,R5 ;CLEAR STORAGE
127770 005025 CLR (R5)+
127772 005025 CLR (R5)+
127774 005025 CLR (R5)+
127776 005025 CLR (R5)+
130000 005025 CLR (R5)+
130002 005015 CLR (R5)
130004 012704 000005 MOV #5,R4
130010 104016 4$: TTISDL
130012 103413 BCS 3$ ;USE 0'S AFTER FIRST NON-NUMBER
130014 104010 TTCOCT
130016 010045 MOV R0,-(R5)
130020 005304 DEC R4
130022 001372 BNE 4$
130024 104016 TTISDL
130026 103405 BCS 3$
130030 104010 TTCOCT
130032 042700 177740 BIC #177740,R0
130036 010037 150036 MOV R0,$TTSAV+12
130042 013700 147740 3$: MOV $ADR,R0
130046 012701 150024 MOV #$TTSAV,R1
130052 104073 WCRAM
130054 000137 100230 JMP @#$KONSL
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 264
FD11 PALII[KL,SYS] Page 13 DEPOSIT C-RAM SUBROUTINE
;C-RAM PRIMARY DECISION TABLE
;
130060 130156 $CRMD0: .WORD $FJ ;J FIELD
130062 004
130063 001 .BYTE 4,1 ;CHARACTERS , POST SPACING
130064 130172 .WORD $FT ;T FIELD
130066 001
130067 001 .BYTE 1,1
130070 130176 .WORD $FAR ;AR FIELD
130072 002
130073 001 .BYTE 2,1
130074 130206 .WORD $FAD ;AD FIELD
130076 004
130077 001 .BYTE 4,1
130100 130222 .WORD $FBR ;BR FIELD
130102 001
130103 002 .BYTE 1,2
130104 130226 .WORD $FMQ ;MQ FIELD
130106 001
130107 002 .BYTE 1,2
130110 130230 .WORD $FFM ;FM FIELD
130112 001
130113 002 .BYTE 1,2
130114 130234 .WORD $FSCAD ;SCAD FIELD
130116 003
130117 002 .BYTE 3,2
130120 130246 .WORD $FSC ;SC FIELD
130122 001
130123 002 .BYTE 1,2
130124 130250 .WORD $FFE ;FE FIELD
130126 001
130127 002 .BYTE 1,2
130130 130252 .WORD $FSH ;SH FIELD
130132 001
130133 001 .BYTE 1,1
130134 130256 .WORD $FNUM ;NUM FIELD
130136 003
130137 002 .BYTE 3,2
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 265
FD11 PALII[KL,SYS] Page 13.1 DEPOSIT C-RAM SUBROUTINE
130140 130270 .WORD $FVMA ;VMA FIELD
130142 001
130143 002 .BYTE 1,2
130144 130274 .WORD $FMEM ;MEM FIELD
130146 002
130147 003 .BYTE 2,3
130150 130302 .WORD $FCOND ;COND FIELD
130152 002
130153 003 .BYTE 2,3
130154 000000 .WORD 0 ;END OF TABLE WORD
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 266
FD11 PALII[KL,SYS] Page 14 DEPOSIT C-RAM SUBROUTINE
;C-RAM SECONDARY DECISION TABLES
130156 112
130157 111 $FJ: .BYTE 74.,73. ;J00(5), J01(6)
130160 110
130161 107 .BYTE 72.,71. ;J02(7), J03(8)
130162 106
130163 105 .BYTE 70.,69. ;J04(9), J05(10)
130164 104
130165 103 .BYTE 68.,67. ;J06(11), J07(12)
130166 102
130167 101 .BYTE 66.,65. ;J08(13), J09(14)
130170 100
130171 000 .BYTE 64.,0 ;J10(15)
130172 003
130173 001 $FT: .BYTE 3.,1. ;T00(76), T01(78)
130174 000
130175 000 .BYTE 0,0
130176 053
130177 013 $FAR: .BYTE 43.,11. ;ARXM SEL4(36), ARXM SEL2(68)
130200 011
130201 042 .BYTE 9.,34. ;ARXM SEL1(70), ARM SEL4(45)
130202 017
130203 015 .BYTE 15.,13. ;ARM SEL2(64), ARM SEL1(66)
130204 000
130205 000 .BYTE 0,0
130206 063
130207 057 $FAD: .BYTE 51.,47. ;ADB SEL2(28), ADB SEL1(32)
130210 066
130211 065 .BYTE 54.,53. ;ADA DIS(25), ADA SEL2(26)
130212 064
130213 005 .BYTE 52.,5. ;ADA SEL1(27), AD CRY(74)
130214 067
130215 073 .BYTE 55.,59. ;AD BOOLE(24), AD SEL 8 (20)
130216 072
130217 071 .BYTE 58.,57. ;AD SEL 4 (21), AD SEL 2 (22)
130220 070
130221 000 .BYTE 56.,0 ;AD SEL 1 (23)
130222 031
130223 033 $FBR: .BYTE 25.,27. ;BRX LOAD(54), BR LOAD(52)
130224 000
130225 000 .BYTE 0,0
130226 077
130227 000 $FMQ: .BYTE 63.,0 ;MQ SEL(16)
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 267
FD11 PALII[KL,SYS] Page 14.1 DEPOSIT C-RAM SUBROUTINE
130230 027
130231 026 $FFM: .BYTE 23.,22. ;FM ADR SEL4(56), FM ADR SEL2(57)
130232 025
130233 000 .BYTE 21.,0 ;FM ADR SEL1(58)
130234 045
130235 023 $FSCAD: .BYTE 37.,19. ;SCADB SEL2(42), SCADB SEL1(60)
130236 117
130237 047 .BYTE 79.,39. ;SCADA DIS(0), SCADA SEL2(40)
130240 046
130241 116 .BYTE 38.,78. ;SCADA SEL1(41), SCAD 4(1)
130242 115
130243 114 .BYTE 77.,76. ;SCAD 2(2), SCAD 1(3)
130244 000
130245 000 .BYTE 0,0
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 268
FD11 PALII[KL,SYS] Page 15 DEPOSIT C-RAM SUBROUTINE
130246 021
130247 000 $FSC: .BYTE 17.,0 ;SCM SEL 2(62)
130250 113
130251 000 $FFE: .BYTE 75.,0 ;FE LOAD(4)
130252 041
130253 040 $FSH: .BYTE 33.,32. ;SH/ARMM SEL2(46), SH/ARMM SEL1(47)
130254 000
130255 000 .BYTE 0,0
130256 062
130257 061 $FNUM: .BYTE 50.,49. ;#00(29), #01(30)
130260 060
130261 056 .BYTE 48.,46. ;#02(31), #03(33)
130262 055
130263 054 .BYTE 45.,44. ;#04(34), #05(35)
130264 052
130265 051 .BYTE 42.,41. ;#06(37), #07(38)
130266 050
130267 000 .BYTE 40.,0 ;#08(39)
130270 043
130271 007 $FVMA: .BYTE 35.,7. ;VMA SEL 2(44), VMA SEL 1(72)
130272 000
130273 000 .BYTE 0,0
130274 037
130275 036 $FMEM: .BYTE 31.,30. ;MEM 00(48), MEM 01(49)
130276 035
130277 034 .BYTE 29.,28. ;MEM 02(50), MEM 03(51)
130300 000
130301 000 .BYTE 0,0
130302 076
130303 075 $FCOND: .BYTE 62.,61. ;COND 00(17), COND 01(18)
130304 074
130305 032 .BYTE 60.,26. ;COND 02(19), COND 03(53)
130306 030
130307 024 .BYTE 24.,20. ;COND 04(55), COND 05(59)
130310 000
130311 000 .BYTE 0,0
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 269
KLDCP PAL[KL,SYS] Page 5.5 DEPOSIT C-RAM SUBROUTINE
;Dectape
.INSRT DTA11.PAL
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 270
DTA11 PAL[KL,SYS] Page 1 DEPOSIT C-RAM SUBROUTINE
COMMENT ⊗ VALID 00027 PAGES
C REC PAGE DESCRIPTION
C00001 00001
C00003 00002 .SBTTL PROGRAM FILE LOADER, 4-SEPT-75
C00008 00003 PROCESS FILENAME.EXT FROM INPUT BUFFER
C00011 00004 DECTAPE/RP04/FLOPPY LOADER START
C00013 00005 LLDONE: MOV R4,DVCNT RESAVE POINTERS
C00015 00006 LDPRO2: JMP ACTLDC LOAD TYPE ERROR
C00017 00007 LDCKSM: TST LDOCTF LOADING OCTAL ?
C00019 00008 LOAD DONE ROUTINE PDP11 LOAD ROUTINE
C00021 00009 3$: TST VERIFY
C00022 00010 PDP-11 BINARY LOAD ROUTINE
C00024 00011 3$: PUSH R0
C00025 00012 KL10 LOAD D-RAM ROUTINE
C00027 00013 KL10 C-RAM ZERO
C00031 00014 2$: MOV LDADR,R0 SELECT C-RAM STARTING ADDRESS
C00032 00015 LOAD TEN CORE ZERO
C00034 00016 LOAD TEN DATA
C00036 00017 LD10VR: BMI LD10ER N-BIT SET DEPOSIT FAILED
C00037 00018 DEVICE FILE DIRECTORY LOOKUP
C00039 00019 1$: MOV (R0)+,DIRST0 STORE RAD50 NAME
C00041 00020 DECTAPE/FLOPPY DIRECTORY ROUTINE
C00042 00021 READ DEVICE FRAME SUBROUTINE
C00044 00022 DVEOF: TST LDCNTL EOF, PRINTING A HELP FILE ?
C00045 00023 RAD50 UNPACK SUBROUTINE
C00047 00024 DECTAPE READ/WRITE FILE ROUTINES
C00048 00025 DECTAPE DEVICE READ/WRITE ROUTINE
C00050 00026 DTSRA: ADD #3,@#TCDT +3 TO TCDT
C00053 00027 .SBTTL ASCR50 ASCII TO RAD50 CONVERSION ROUTINE
C00055 ENDMK
C⊗;
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 271
DTA11 PAL[KL,SYS] Page 2 PROGRAM FILE LOADER, 4-SEPT-75
.SBTTL PROGRAM FILE LOADER, 4-SEPT-75
;LOAD CONTROL FLAG WORD "LDCNTL"
;BIT15=1 IS HELP, PRINT FILE READ
;WORD = 0 .A10, PDP-10 LOAD
; 1 .A11, PDP-11 LOAD
; 2 .RAM, KL10 C-RAM ZERO
; 3 .RAM, KL10 C-RAM LOAD
; 4 .RAM, KL10 D-RAM LOAD
; 5 .BIN, PDP-11 BIN LOAD
; 6 .D10, PDP-11 LOAD DSKDMP BOOTSTRAP .D10 FILE
;ACT10 .BIN LOADED AS .A11
; .SAV LOADED AS .A10
;PROGRAM DETERMINATION & LOAD CONTROL INITIALIZATION
130312 104206 DVLOAD: NAMEXT ;SETUP NAME.EXT
130314 005700 TST R0 ;ANY EXT ?
130316 001043 BNE 4$ ;YES
130320 105737 147640 TSTB JFILEF ;DOING "J" COMMAND ?
130324 001405 BEQ 50$ ;NO
130326 012704 046503 MOV #"CM,R4 ;YES, DEFAULT EXT IS "CMD"
130332 012705 020104 MOV #"D ,R5
130336 000427 BR 52$
130340 105737 147644 50$: TSTB IFILEF ;DOING "I" COMMAND ?
130344 001405 BEQ 51$ ;NO
130346 012704 041503 MOV #"CC,R4 ;YES, DEFAULT EXT IS "CCL"
130352 012705 020114 MOV #"L ,R5
130356 000417 BR 52$
130360 013704 150752 51$: MOV LDOVRD,R4 ;ANY LOAD EXT OVERRIDE ?
130364 003403 BLE 53$ ;IF NOT, USE "A10"
130366 022704 000007 CMP #7,R4
130372 002002 BGE 54$ ;BRANCH UNLESS OUT OF BOUNDS
130374 012704 000001 53$: MOV #1,R4
130400 005304 54$: DEC R4 ;RESULT OF 0=A10,1=A11,2,3,4=RAM,5=BIN,6=D10(DSKDMP)
130402 006304 ASL R4 ;DOUBLE R4 (SINCE WE NEED 4 BYTES PER ENTRY)
130404 006304 ASL R4 ;DOUBLE AGAIN
130406 016405 130644 MOV DEFEXT+2(R4),R5 ;SECOND 2 CHARACTERS OF DEFAULT EXT.
130412 016404 130642 MOV DEFEXT(R4),R4
130416 010437 151206 52$: MOV R4,EXTBF
130422 010537 151210 MOV R5,EXTBF+2
130426 012703 150754 4$: MOV #LDCNTL,R3
130432 005713 TST (R3) ;IS THIS "HELP"
130434 100451 BMI 12$ ;BRANCH IF "HELP". NO DEFAULT EXTENSION.
130436 012704 147647 MOV #TEMP+1,R4
130442 012705 151210 MOV #EXTBF+2,R5
130446 111514 MOVB (R5),(R4) ;MAKE A WORD OUT OF 2ND & 3RD CHAR
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 272
DTA11 PAL[KL,SYS] Page 2.1 PROGRAM FILE LOADER, 4-SEPT-75
130450 114544 MOVB -(R5),-(R4)
130452 122745 000101 CMPB #'A,-(R5) ;IS FIRST CHAR AN "A" ?
130456 001420 BEQ 6$ ;BR IF YES
130460 122715 000102 CMPB #'B,(R5) ;IS FIRST CHAR A "B" ?
130464 001446 BEQ 14$ ;BR IF YES
130466 122715 000123 CMPB #'S,(R5) ;IS FIRST CHAR AN "S" ?
130472 001451 BEQ 16$ ;BR IF YES
130474 122715 000122 CMPB #'R,(R5) ;IS FIRST CHAR AN "R" ?
130500 001422 BEQ 66$ ;BR IF YES
130502 122715 000104 CMPB #'D,(R5) ;IS FIRST CHAR A "D" ?
130506 001447 BEQ 21$
130510 005737 150752 5$: TST LDOVRD ;ANY LOAD EXT OVERRIDE ?
130514 001021 BNE 12$ ;YES
130516 000566 BR $$$NAM ;NAME.EXT ERR
130520 022714 030061 6$: CMP #"10,(R4) ;HERE IS IF FIRST CHARACTER IS AN "A"
130524 001406 BEQ 7$ ;BR IF ".A10"
130526 022714 030461 CMP #"11,(R4)
130532 001366 BNE 5$ ;BR IF NOT "A11"
130534 012713 000001 MOV #1,(R3) ;"A11"
130540 000407 BR 12$
130542 005013 7$: CLR (R3) ;A10. SETUP LOAD CONTROL
130544 000405 BR 12$
130546 022714 046501 66$: CMP #"AM,(R4) ;"R" SEEN
130552 001356 BNE 5$ ;BR IF NOT ".RAM"
130554 012713 000002 MOV #2,(R3) ;"RAM"
130560 005737 150752 12$: TST LDOVRD ;ANY LOAD EXT OVERRIDE ?
130564 001404 BEQ 20$ ;NO
130566 013700 150752 MOV LDOVRD,R0 ;SET LOAD CONTROL ACCORDINGLY
130572 005300 DEC R0
130574 010013 MOV R0,(R3)
130576 000137 133346 20$: JMP DEVFIL ;GO GET FILE & LOAD
130602 022714 047111 14$: CMP #"IN,(R4) ;IS EXTENSION ".BIN" ?
130606 001340 BNE 5$ ;BR IF NO
130610 012713 000005 MOV #5,(R3) ;YES, SET LOAD CONTROL
130614 000761 BR 12$
130616 022714 053101 16$: CMP #"AV,(R4) ;IS EXTENSION ".SAV" ?
130622 001747 BEQ 7$ ;YES, ACT10 TREATS AS ".A10"
130624 000731 BR 5$
130626 022714 030061 21$: CMP #"10,(R4) ;IS EXTENSION ".D10" ?
130632 001326 BNE 5$ ;NO, GO REPORT ERROR
130634 012713 000006 MOV #6,(R3) ;YES, SET LOAD CONTROL
130640 000747 BR 12$
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 273
DTA11 PAL[KL,SYS] Page 2.2 PROGRAM FILE LOADER, 4-SEPT-75
130642 101
130643 061
130644 060
130645 040
DEFEXT: .ASCII /A10 /
130646 101
130647 061
130650 061
130651 040
.ASCII /A11 /
130652 122
130653 101
130654 115
130655 040
.ASCII /RAM /
130656 122
130657 101
130660 115
130661 040
.ASCII /RAM /
130662 122
130663 101
130664 115
130665 040
.ASCII /RAM /
130666 102
130667 111
130670 116
130671 040
.ASCII /BIN /
130672 104
130673 061
130674 060
130675 040
.ASCII /D10 / ;FOR DSKDMP BOOT
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 274
DTA11 PAL[KL,SYS] Page 3 PROGRAM FILE LOADER, 4-SEPT-75
;PROCESS FILENAME.EXT FROM INPUT BUFFER
130676 012700 151200 $NAMEXT:MOV #NAMBF,R0 ;CLEAR NAME LOOKUP BUFFER
130702 012701 020040 MOV #20040,R1 ;TO SPACES
130706 012702 000005 MOV #5,R2
130712 010120 70$: MOV R1,(R0)+ ;UP TO 9 CHARS
130714 005302 DEC R2
130716 003375 BGT 70$
130720 012702 151200 MOV #NAMBF,R2 ;LOOKUP NAME
130724 012701 000007 MOV #7,R1 ;MAXIMUM OF 6 CHARS IN NAME
130730 104016 TTISDL
130732 103402 BCS 99$ ;LETTER, ALREADY IN R0
130734 104005 1$: TTICHR ;GET CHAR FROM TTY BUFFER
130736 103456 BCS 5$
130740 122700 000056 99$: CMPB #'.,R0
130744 001415 BEQ 2$ ;BR IF PERIOD, NAME.EXT SEPARATOR
130746 122700 000033 CMPB #33,R0
130752 001435 BEQ 97$ ;ALTMODE, SELF START
130754 122700 000015 CMPB #15,R0
130760 001442 BEQ 96$ ;CR, NO EXTENSION
130762 122700 000040 CMPB #SPACE,R0 ;IF SPACE, NO EXT
130766 001437 BEQ 96$
130770 005301 DEC R1
130772 001440 BEQ 5$ ;BR IF MORE THAN 6 CHARS
130774 110022 MOVB R0,(R2)+ ;STORE CHAR
130776 000756 BR 1$
131000 012702 151206 2$: MOV #EXTBF,R2 ;GET EXTENSION
131004 012701 000004 MOV #4,R1
131010 104005 3$: TTICHR
131012 103430 BCS 5$
131014 122700 000033 CMPB #33,R0
131020 001415 BEQ 13$ ;BR IF ALTMODE
131022 122700 000015 CMPB #15,R0
131026 001414 BEQ 98$ ;BR IF CR
131030 122700 000040 CMPB #SPACE,R0 ;BR IF SPACE
131034 001411 BEQ 98$
131036 005301 DEC R1
131040 001415 BEQ 5$ ;BR IF MORE THAN 3 CHARS
131042 110022 MOVB R0,(R2)+ ;STORE CHAR
131044 000761 BR 3$
131046 005137 150746 97$: COM SRTFLG ;SET SELF START FLAG
131052 000405 BR 96$
131054 005137 150746 13$: COM SRTFLG
131060 022701 000004 98$: CMP #4,R1
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 275
DTA11 PAL[KL,SYS] Page 3.1 PROGRAM FILE LOADER, 4-SEPT-75
131064 001001 BNE 10$
131066 005000 96$: CLR R0
10$: EXIT
131070 000137 124062 JMP $EXIT
131074 $$$NAM=.
131074 104025 5$: $PMSG ;NAME.EXT ERR
131076 131104 $$NAM
131100 000137 100004 JMP $CNTLC
131104 116
131105 101
131106 115
131107 105
131110 056
131111 105
131112 130
131113 124
131114 040
131115 105
131116 122
131117 122
131120 000
$$NAM: .ASCIZ /NAME.EXT ERR/
131122 .EVEN
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 276
DTA11 PAL[KL,SYS] Page 4 PROGRAM FILE LOADER, 4-SEPT-75
;DECTAPE/RP04/FLOPPY LOADER START
131122 022737 000005 150754 DTRPLD: CMP #5,LDCNTL ;PDP-11 .BIN FILE LOAD ?
131130 001002 BNE LLD1
131132 000137 132240 JMP LDBIN
131136 104160 LLD1: DVDATA ;LOAD FIRST BUFFER
131140 103002 BCC LLD2
131142 000137 134064 JMP DVEOF ;EOF
LLD2:
.IF DF MONASB
TST DEVTYP
BPL 1$
JMP ACTLD2 ;ACT10 PROCESS
.ENDC
131146 012705 150520 1$: MOV #$INBUF,R5 ;SET UP START OF CHAR BUFFER
131152 010537 150736 MOV R5,$INPTC
131156 013704 151146 LLD3: MOV DVCNT,R4 ;SETUP DEVICE BYTE COUNTER
131162 013703 151150 MOV DVADR,R3 ;SETUP DEVICE DATA BLOCK ADDRESS
131166 005704 LLD4: TST R4 ;ANY DATA REMAINING ?
131170 003004 BGT 2$ ;YES
131172 104160 DVDATA ;NO, READ NEXT DEVICE BLOCK
131174 103370 BCC LLD3
131176 000137 134064 JMP DVEOF ;END OF FILE ?
131202 112300 2$: MOVB (R3)+,R0 ;GET FRAME, ONE 7 BIT CHAR
131204 005304 DEC R4 ;COUNT IT
131206 042700 177600 BIC #177600,R0
131212 005700 TST R0 ;IS FRAME A NULL ?
131214 001764 BEQ LLD4 ;BR IF YES, DON'T STORE
131216 110025 MOVB R0,(R5)+ ;STORE IN BUFFER
131220 020527 150734 CMP R5,#$INBUF+140.
131224 003402 BLE 1$ ;BR IF BUFFER DIDN'T OVERFLOW
131226 000137 131760 JMP $LINERR ;REPORT BUFFER OVERFLOW
131232 022700 000012 1$: CMP #12,R0 ;IS CHAR A LINE FEED ?
131236 001401 BEQ LLDONE ;BR IF LINE DONE
131240 000752 BR LLD4 ;LOOP TILL LF FOUND
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 277
DTA11 PAL[KL,SYS] Page 5 PROGRAM FILE LOADER, 4-SEPT-75
131242 010437 151146 LLDONE: MOV R4,DVCNT ;RESAVE POINTERS
131246 010337 151150 MOV R3,DVADR
131252 105015 CLRB (R5) ;STORE A NULL TO END STRING
131254 010537 150740 MOV R5,$INPTR
131260 005237 150744 INC DEVLC ;COUNT LINE
131264 013737 150744 177570 MOV DEVLC,SWR ;DISPLAY
131272 005737 150754 TST LDCNTL ;IS HELP FLAG SET ?
131276 100002 BPL LDPROC ;BR IF NO
131300 000137 140426 JMP DAHLP ;DTA/ACT HELP
131304 005037 150756 LDPROC: CLR LDOCTF ;CLEAR OCTAL LOAD FLAG
131310 005037 150750 CLR LDZBLK
131314 013701 150754 MOV LDCNTL,R1 ;GET LOAD CONTROL
131320 013705 150736 MOV $INPTC,R5 ;SETUP INPUT POINTER
131324 112500 MOVB (R5)+,R0 ;GET FIRST CHAR FROM FILE
131326 122700 000073 CMPB #';,R0 ;IS FIRST CHAR A SEMICOLON ?
131332 001420 BEQ LDPRO1 ;YES, PROCESS COMMENT LINE
131334 126100 131670 CMPB LDLTR(R1),R0 ;DOES 1ST CHAR MATCH LOAD TYPE ?
131340 001443 BEQ LDPRO3 ;YES
131342 023727 150754 000006 CMP LDCNTL,#6 ;D10 FILES ACT LIKE A10
131350 001403 BEQ 1$
131352 005737 150754 TST LDCNTL ;IS THIS .A10 FILE ?
131356 001032 BNE LDPRO2 ;NO, ERROR
131360 122700 000132 1$: CMPB #'Z,R0 ;YES, IS FIRST CHAR A "Z" ?
131364 001027 BNE LDPRO2 ;NO, ERROR
131366 005137 150750 COM LDZBLK ;YES, SET CORE ZERO FLAG
131372 000426 BR LDPRO3
131374 005737 150744 LDPRO1: TST DEVLC ;COMMENT, IS THIS FIRST LINE ?
131400 001262 BNE LLD2 ;NO
PUSH PCMDNF ;SAVE PGM CMD NO PRINT FLAG
131406 104057 SWITCH
131410 030027 000001 BIT R0,#CHAIN ;IS CHAIN SWITCH SET ?
131414 001403 BEQ 1$ ;NO
131416 012737 777777 152232 MOV #-1,PCMDNF ;YES, PREVENT FILE ID PRINTOUT
131424 112501 1$: MOVB (R5)+,R1 ;PUT FILE ID LINE IN OUTPUT BUFFER
131426 001402 BEQ 2$ ;NULL, DONE
131430 104154 PLDBUF
131432 000774 BR 1$
2$: POP PCMDNF ;RESTORE FLAG
131440 104215 PNTRST ;RESET OUTPUT POINTERS ANYWAY
131442 000641 BR LLD2
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 278
DTA11 PAL[KL,SYS] Page 6 PROGRAM FILE LOADER, 4-SEPT-75
131444 000137 140632 LDPRO2: JMP ACTLDC ;LOAD TYPE ERROR
131450 112500 LDPRO3: MOVB (R5)+,R0 ;GET 2ND CHAR
131452 122700 000117 CMPB #'O,R0 ;IS IT AN O ?
131456 001445 BEQ LDOCT ;YES, OCTAL DATA FORMAT LOAD
131460 122700 000040 CMPB #40,R0 ;IS IT A SPACE ?
131464 001367 BNE LDPRO2 ;BR IF NO
131466 012701 150760 LDCLR: MOV #LDCNT,R1 ;SETUP CONVERTED STORAGE ADDRESS
131472 005002 LDCNV: CLR R2 ;CLEAR WORD FORMER
131474 112500 1$: MOVB (R5)+,R0 ;GET CHAR
131476 022700 000015 CMP #15,R0 ;IS IT A CR ?
131502 001774 BEQ 1$ ;YES, IGNORE
131504 022700 000012 CMP #12,R0 ;IS IT A LF ?
131510 001435 BEQ LDEOL ;YES, END OF LINE
131512 022700 000054 CMP #54,R0 ;IS IT A COMMA ?
131516 001415 BEQ 2$ ;YES, GO STORE WORD
131520 005737 150756 TST LDOCTF ;LOADING OCTAL ?
131524 001014 BNE 3$ ;YES
SL R2,6 ;SHIFT WORD FORMER LEFT 6
131542 042700 000100 BIC #100,R0 ;CLEAR ASCIIZED BIT
131546 050002 4$: BIS R0,R2 ;INSERT NEW OIT
131550 000751 BR 1$ ;LOOP TILL WORD FORMED
131552 010221 2$: MOV R2,(R1)+ ;STORE 16 BIT WORD
131554 000746 BR LDCNV ;GO DO NEXT
3$: SL R2,3 ;OCTAL LOAD
131564 042700 177770 BIC #177770,R0 ;CLEAR ALL BUT NUMBER PART
131570 000766 BR 4$
131572 005137 150756 LDOCT: COM LDOCTF ;OCTAL LOAD, SET FLAG
131576 000733 BR LDCLR
131600 000137 140646 LDERR: JMP ACTLDF ;LOAD ERROR
131604 010211 LDEOL: MOV R2,(R1) ;STORE CHECKSUM
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 279
DTA11 PAL[KL,SYS] Page 7 PROGRAM FILE LOADER, 4-SEPT-75
131606 005737 150756 LDCKSM: TST LDOCTF ;LOADING OCTAL ?
131612 001012 BNE 2$ ;YES, NO CHECKSUM
131614 012702 150760 MOV #LDCNT,R2 ;CHECKSUM LOAD STORAGE
131620 005000 CLR R0
131622 062200 1$: ADD (R2)+,R0
131624 020201 CMP R2,R1
131626 003775 BLE 1$
131630 005700 TST R0 ;IS CHECKSUM = 0 ?
131632 001402 BEQ 2$ ;BR IF 0
131634 000137 140640 JMP ACTBCK ;BAD CHECKSUM
131640 013700 150754 2$: MOV LDCNTL,R0 ;DISPATCH TO PROPER LOAD ROUTINE
SL R0,1 ;DETERMINED FROM LDCNTL WORD
131646 000170 131652 JMP @LDTYPE(R0)
131652 133050 LDTYPE: LDTEN ;.A10, LOAD TEN
131654 131774 LDELVN ;.A11, LOAD ELEVEN
131656 132606 LDCZRO ;.RAM, ZERO C-RAM
131660 132640 LDCRAM ;.RAM, LOAD C-RAM
131662 132450 LDDRAM ;.RAM, LOAD D-RAM
131664 000000 0 ;.BIN, DETECTED IN LINE
131666 135264 LDBOOT ;.D10, LOAD DSKDMP BOOT INTO 11 (SAME FORMAT AS A10)
131670 124
131671 105
131672 132
131673 103
131674 104
131675 040
131676 124
LDLTR: .ASCII /TEZCD T/
131677 061
131700 061
131701 040
131702 105
131703 122
131704 122
131705 054
131706 101
131707 104
131710 122
131711 075
131712 000
$$LD11: .ASCIZ /11 ERR,ADR=/
131713 103
131714 117
131715 122
131716 075
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 280
DTA11 PAL[KL,SYS] Page 7.1 PROGRAM FILE LOADER, 4-SEPT-75
131717 000
$$COR: .ASCIZ /COR=/
131720 101
131721 103
131722 124
131723 075
131724 000
$$ACT: .ASCIZ /ACT=/
131725 134
131726 122
131727 101
131730 115
131731 040
131732 105
131733 122
131734 122
131735 054
131736 103
131737 117
131740 122
131741 075
131742 000
$$RAM: .ASCIZ /\RAM ERR,COR=/
131743 134
131744 061
131745 060
131746 040
131747 105
131750 122
131751 122
131752 054
131753 101
131754 104
131755 122
131756 075
131757 000
$$TEN: .ASCIZ /\10 ERR,ADR=/
131760 .EVEN
$LINERR:PMSG <?LINE TOO LONG>
131760 104025 $PMSG
131762 146755 $$CLIT
131764 000137 100004 JMP $CNTLC
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 281
DTA11 PAL[KL,SYS] Page 8 PROGRAM FILE LOADER, 4-SEPT-75
;LOAD DONE ROUTINE PDP11 LOAD ROUTINE
LDDONE:
.IF DF MONASB
TST DEVTYP ;LOAD DONE
BMI 1$ ;BR IF ACT10 MODE
.ENDC
131770 000137 140604 JMP DADONE
.LIF DF MONASB
1$: JMP ACTDON ;ACT10 PROCESS
;PDP-11 CORE LOAD ROUTINE
131774 013700 150760 LDELVN: MOV LDCNT,R0 ;GET LOAD WORD COUNT
132000 001510 BEQ 2$ ;IF 0, THIS IS TRANSFER BLOCK
132002 012702 150764 MOV #LDATA,R2 ;SETUP DATA PICKUP POINTER
132006 013701 150762 MOV LDADR,R1 ;GET LOAD MEMORY ADDRESS
132012 032701 000001 BIT #1,R1 ;LOAD WORD OR BYTE ?
132016 001034 BNE 3$ ;BYTE LOAD
132020 005737 147750 1$: TST VERIFY
132024 001005 BNE 11$
132026 012221 19$: MOV (R2)+,(R1)+ ;MOVE WORD FROM STOR TO MEMORY
132030 005300 13$: DEC R0 ;DECREMENT WORD COUNT
132032 003372 BGT 1$ ;LOOP TILL ALL WORDS MOVED
132034 000137 131146 18$: JMP LLD2 ;GO DO NEXT LOAD LINE
132040 021211 11$: CMP (R2),(R1) ;COMPARE CURRENT AGAINST FILE
132042 001417 BEQ 12$
PUSH R0
132046 104025 $PMSG
132050 131677 $$LD11 ;"11 ERR,ADR="
132052 010100 MOV R1,R0
132054 104035 PNTOCT
132056 104025 $PMSG
132060 131713 $$COR ;"COR="
132062 011200 MOV (R2),R0
132064 104035 PNTOCT
132066 104025 $PMSG
132070 131720 $$ACT ;"ACT="
132072 011100 MOV (R1),R0
132074 104035 PNTOCT
132076 104031 PCRLF
POP R0
132102 005722 12$: TST (R2)+
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 282
DTA11 PAL[KL,SYS] Page 8.1 PROGRAM FILE LOADER, 4-SEPT-75
132104 005721 TST (R1)+
132106 000750 BR 13$
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 283
DTA11 PAL[KL,SYS] Page 9 PROGRAM FILE LOADER, 4-SEPT-75
132110 005737 147750 3$: TST VERIFY
132114 001005 BNE 31$
132116 112221 39$: MOVB (R2)+,(R1)+ ;ODD ADDRESS, BYTE LOAD
132120 112221 MOVB (R2)+,(R1)+ ;2 BYTES PER WORD
132122 005300 38$: DEC R0 ;DECREMENT WORD COUNT
132124 003371 BGT 3$ ;LOOP TILL ALL BYTES MOVED
132126 000742 BR 18$ ;GO ON TO NEXT
132130 005005 31$: CLR R5
32$: PUSH R0
132134 121211 CMPB (R2),(R1)
132136 001422 BEQ 33$
132140 104025 $PMSG
132142 131677 $$LD11 ;"11 ERR,ADR="
132144 010100 MOV R1,R0
132146 104035 PNTOCT
132150 104025 $PMSG
132152 131713 $$COR ;"COR="
132154 111200 MOVB (R2),R0
132156 042700 177400 BIC #177400,R0
132162 104036 PNTOCS
132164 104032 PSPACE
132166 104025 $PMSG
132170 131720 $$ACT ;"ACT="
132172 111100 MOVB (R1),R0
132174 042700 177400 BIC #177400,R0
132200 104036 PNTOCS
132202 104031 PCRLF
33$: POP R0
132206 005202 INC R2
132210 005201 INC R1
132212 005705 TST R5
132214 001342 BNE 38$
132216 005205 INC R5
132220 000744 BR 32$
132222 013700 150762 2$: MOV LDADR,R0
132226 010037 157204 LD11DN: MOV R0,PGOADR
132232 005037 157202 CLR PGOCTL
132236 000654 BR LDDONE
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 284
DTA11 PAL[KL,SYS] Page 10 PROGRAM FILE LOADER, 4-SEPT-75
;PDP-11 BINARY LOAD ROUTINE
132240 104160 LDBIN: DVDATA ;LOAD DEVICE BUFFER
132242 005037 151110 LDBIN1: CLR $CKS11 ;INIT CHECKSUM
132246 104163 DVFRAM ;READ FRAME
132250 105300 DECB R0 ;CHECK FOR BLOCK START
132252 001373 BNE LDBIN1 ;NOT YET
132254 104163 DVFRAM ;READ ANOTHER FRAME
132256 104164 DVWRD ;GET FULL BYTE COUNT
132260 010037 151104 MOV R0,LBC
132264 162737 000006 151104 SUB #6,LBC
132272 001456 BEQ LJMP ;BYTE COUNT OF 6 IS XFER BLOCK
132274 104164 DVWRD ;GET LOAD ADDRESS
132276 010005 MOV R0,R5 ;STORE LOAD ADDRESS
132300 104163 LDBIN2: DVFRAM ;READ DATA FRAME
132302 005337 151104 DEC LBC
132306 002007 BGE LDBIN3 ;BR IF MORE DATA REMAINS
132310 105737 151110 TSTB $CKS11 ;CORRECT CHECKSUM ?
132314 001752 BEQ LDBIN1 ;BR IF GOOD CHECKSUM
LDBINE: PMSG <\CKSUM ERR>
132316 104025 $PMSG
132320 146774 $$CLIT
132322 000137 100004 $LDBNE: JMP $CNTLC
132326 005737 147750 LDBIN3: TST VERIFY
132332 001010 BNE 1$
132334 020527 100000 CMP R5,#PRGSRT ;TRYING TO LOAD INTO KLDCP ?
132340 103403 BLO 10$ ;NO
PMSG <\ADR ERR>
132342 104025 $PMSG
132344 147007 $$CLIT
132346 000765 BR $LDBNE ;YES, BAD !!
132350 110025 10$: MOVB R0,(R5)+ ;STORE DATA 1 BYTE AT A TIME
132352 000752 BR LDBIN2 ;LOOP
132354 120015 1$: CMPB R0,(R5)
132356 001002 BNE 3$
132360 005205 2$: INC R5
132362 000746 BR LDBIN2
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 285
DTA11 PAL[KL,SYS] Page 11 PROGRAM FILE LOADER, 4-SEPT-75
3$: PUSH R0
132366 104025 $PMSG
132370 131677 $$LD11 ;"11 ERR,ADR="
132372 010500 MOV R5,R0
132374 104035 PNTOCT
132376 104025 $PMSG
132400 131713 $$COR ;"COR="
POP R0
132404 104036 PNTOCS
132406 104032 PSPACE
132410 104025 $PMSG
132412 131720 $$ACT ;"ACT="
132414 111500 MOVB (R5),R0
132416 042700 177400 BIC #177400,R0
132422 104036 PNTOCS
132424 104031 PCRLF
132426 000754 BR 2$
132430 104164 LJMP: DVWRD ;GET POSSIBLE XFER ADDRESS
PUSH R0
132434 104163 DVFRAM
132436 105737 151110 TSTB $CKS11 ;CORRECT CHECKSUM ?
132442 001325 BNE LDBINE ;BR IF BAD
POP R0 ;SETUP START ADDRESS
132446 000667 BR LD11DN
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 286
DTA11 PAL[KL,SYS] Page 12 PROGRAM FILE LOADER, 4-SEPT-75
;KL10 LOAD D-RAM ROUTINE
;CALLS "WDRAM" WITH R0 = D-RAM ADDRESS
; R1 = LOAD DATA ADDRESS
132450 013702 150760 LDDRAM: MOV LDCNT,R2 ;GET LOAD WORD COUNT
132454 001437 BEQ 2$ ;WC = 0, TRANSFER BLOCK
132456 013703 150762 MOV LDADR,R3 ;SETUP D-RAM ADDRESS
132462 012704 150764 MOV #LDATA,R4 ;DATA PICKUP ADDRESS
132466 010300 1$: MOV R3,R0 ;D-RAM ADDRESS TO R0
132470 010401 MOV R4,R1 ;DATA ADDRESS TO R1
132472 005737 147750 TST VERIFY
132476 001001 BNE 11$ ;VERIFY D-RAM
132500 104127 WDRAM ;WRITE D-RAM
132502 010300 11$: MOV R3,R0
132504 104126 RDRAM ;READ D-RAM
132506 010005 MOV R0,R5
132510 042710 000020 BIC #20,(R0) ;CLEAR COMPUTED PARITY
132514 022021 CMP (R0)+,(R1)+ ;COMPARE EVEN WORD
132516 001020 BNE 20$
132520 042710 000020 BIC #20,(R0) ;CLEAR COMPUTED PARITY
132524 022021 CMP (R0)+,(R1)+ ;COMPARE ODD WORD
132526 001014 BNE 20$
132530 021011 CMP (R0),(R1) ;COMPARE COMMON WORD
132532 001012 BNE 20$
132534 062703 000002 21$: ADD #2,R3 ;TO NEXT EVEN D-RAM ADDRESS
132540 062704 000006 ADD #6,R4 ;SETUP NEXT DATA PICKUP ADR
132544 162702 000003 SUB #3,R2 ;DECREMENT WORD COUNT
132550 003346 BGT 1$ ;BR IF NOT DONE YET
132552 000473 BR $LLD2 ;BACK FOR NEXT LOAD FILE LINE
132554 000137 131770 2$: JMP LDDONE ;LOAD FINISHED
132560 104025 20$: $PMSG
132562 131725 $$RAM ;"RAM ERR,COR="
132564 010300 MOV R3,R0
132566 010401 MOV R4,R1
132570 104143 PNTDRM ;PRINT CORRECT D-RAM
132572 104025 $PMSG
132574 131720 $$ACT ;"ACT="
132576 010300 MOV R3,R0
132600 010501 MOV R5,R1
132602 104143 PNTDRM ;PRINT ACTUAL D-RAM
132604 000753 BR 21$ ;CONTINUE
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 287
DTA11 PAL[KL,SYS] Page 13 PROGRAM FILE LOADER, 4-SEPT-75
;KL10 C-RAM ZERO
COMMENT ⊗
RAM file. The RAM file is ascii-ized text. A RAM file consists of a
Z-line, some C-lines, and some D-lines. The Z-line zeros a selected
region of the CRAM. Each C-line loads one or more microcode words
into the CRAM. The D-lines load the DRAM.
Z wc,addr,count,chksum<crlf>
The "Z " and the commas and crlf are literal. WC is ignored
and may be an empty string. ADDR is the first location in
the CRAM to zero; COUNT is the number of words of CRAM to zero.
If COUNT is zero, nothing is zeroed (one Z line must appear
in the file). Chksum, as always, is the negative of the 16-bit
sum of all preceding fields.
C wc,addr,w0pt0,w0pt1,w0pt2,w0pt3,w0pt4,w0pt5,w1pt0....,chksum
WC is a multiple of 6. Six 16-bit fields are loaded into
each CRAM word. Note: In octal format, denoted by CO, the
fields above are partly reversed. They appear in the order:
Pt4,Pt3,Pt2,Pt1,Pt0,Pt5. This is the same format as the
EC and DC commands use.
Pt5 is the spec field. Other fields are:...
A zero WC signifies the CRAM start address is in ADDR, and
that D-lines follow.
D wc,addr,w0pt0,w0pt1,w0pt2,w2tp0,w2pt1,w2pt2,....,chksum
WC must be a multiple of 3. Three 16-bit fields are loaded
into an even-odd pair of DRAM locations specified by addr
(which should be even). WC=0 signifies end of file.
⊗
132606 104076 LDCZRO: MRESET ;MASTER RESET
132610 005737 147750 TST VERIFY
132614 001006 BNE 2$ ;NO ZEROING IF VERIFY
132616 013701 150764 MOV LDATA,R1 ;GET C-RAM ZERO COUNT
132622 001403 BEQ 2$ ;0 ZERO COUNT, BYPASS ZEROING C-RAM
132624 013700 150762 MOV LDADR,R0 ;SETUP STARTING ADDRESS
132630 104203 MICNUL ;ZERO C-RAM
132632 005237 150754 2$: INC LDCNTL ;ADVANCE LOAD CONTROL TO C-RAM LOAD
132636 000441 BR $LLD2
;KL10 LOAD C-RAM ROUTINE
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 288
DTA11 PAL[KL,SYS] Page 13.1 PROGRAM FILE LOADER, 4-SEPT-75
;CALLS "WCRAM" WITH R0 = C-RAM ADDRESS
; R1 = DATA PICKUP ADDRESS
132640 013702 150760 LDCRAM: MOV LDCNT,R2 ;GET LOAD WORD COUNT
132644 001440 BEQ 2$ ;WC = 0, TRANSFER BLOCK
132646 013703 150762 MOV LDADR,R3 ;SETUP C-RAM ADDRESS
132652 052703 040000 BIS #BIT14,R3 ;SET SPECIAL RESET BIT
132656 012704 150764 MOV #LDATA,R4 ;DATA PICKUP ADDRESS
132662 005737 150756 1$: TST LDOCTF ;LOADING OCTAL ?
132666 001035 BNE 3$ ;YES
132670 010300 4$: MOV R3,R0 ;C-RAM ADDRESS TO R0
132672 010401 MOV R4,R1 ;DATA PICKUP ADDRESS TO R1
132674 005737 147750 TST VERIFY
132700 001001 BNE 41$
132702 104073 WCRAM ;WRITE C-RAM
132704 010300 41$: MOV R3,R0
132706 104074 RCRAM ;READ C-RAM BACK
132710 012705 000006 MOV #6,R5
132714 010401 MOV R4,R1
132716 022021 11$: CMP (R0)+,(R1)+ ;RAM LOADED PROPERLY ?
132720 001035 BNE 12$ ;NO
132722 005305 DEC R5
132724 001374 BNE 11$
132726 005203 42$: INC R3 ;TO NEXT C-RAM ADDRESS
132730 062704 000014 ADD #12.,R4 ;TO NEXT PICKUP ADDRESS
132734 162702 000006 SUB #6,R2 ;DECREMENT WORD COUNT, 6 11 WDS PER
132740 003350 BGT 1$ ;BR IF NOT DONE YET
132742 $LLD2=.
132742 000137 131146 JMP LLD2 ;GET NEXT LOAD FILE LINE
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 289
DTA11 PAL[KL,SYS] Page 14 PROGRAM FILE LOADER, 4-SEPT-75
132746 013700 150762 2$: MOV LDADR,R0 ;SELECT C-RAM STARTING ADDRESS
132752 104075 WWADR ;WRITE ADDRESS TO C-RAM
132754 005237 150754 INC LDCNTL ;ADVANCE LOAD CONTROL TO D-RAM LOAD
132760 000770 BR $LLD2
;OCTAL C-RAM LOAD, DATA IS BACKWARDS FROM UPSIDE DOWN NORMAL
132762 011400 3$: MOV (R4),R0 ;GET WORD 0
132764 016414 000010 MOV 10(R4),(R4) ;PUT WORD 5 IN 0'S PLACE
132770 010064 000010 MOV R0,10(R4) ;PUT WORD 0 IN 5'S PLACE
132774 016400 000002 MOV 2(R4),R0 ;GET WORD 1
133000 016464 000006 000002 MOV 6(R4),2(R4) ;PUT WORD 4 IN 1'S PLACE
133006 010064 000006 MOV R0,6(R4) ;PUT WORD 1 IN 4'S PLACE
133012 000726 BR 4$ ;NOW GO LOAD IN C-RAM
133014 104025 12$: $PMSG ;"RAM ERR,COR="
133016 131725 $$RAM
133020 010300 MOV R3,R0
133022 010401 MOV R4,R1
133024 104142 PNTCRM
133026 104031 PCRLF
133030 104025 $PMSG
133032 131720 $$ACT ;"ACT="
133034 010300 MOV R3,R0
133036 012701 147534 MOV #$BUFRC,R1
133042 104142 PNTCRM
133044 104031 PCRLF
133046 000727 BR 42$
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 290
DTA11 PAL[KL,SYS] Page 15 PROGRAM FILE LOADER, 4-SEPT-75
;LOAD TEN CORE ZERO
; START ADDRESS, LOW 16 BITS IN LDADR
; , BITS 18 & 19 IN HI-BYTE OF LDCNT
; ZERO COUNT IN LDATA
; WORD COUNT SIGNIFIES NUMBER OF LDATA WORDS USED FOR ZEROING
; "D10ZRO" - INCREMENTS PDP-10 ADDRESS WHILE ZEROING
133050 012703 147722 LDTEN: MOV #L10ADR+2,R3 ;SETUP BLOCK START ADDRESS POINTER
133054 005013 CLR (R3)
133056 113713 150761 MOVB LDCNT+1,(R3) ;HI-BYTE OF LDCNT IS ADR BITS 18 & 19
133062 013743 150762 MOV LDADR,-(R3) ;SETUP ADR BITS 20-35
133066 005737 150750 TST LDZBLK ;TEN CORE ZERO BLOCK ?
133072 001425 BEQ LDRDIN ;NO, LOAD DATA
133074 104100 LDTENZ: SM ;START MACHINE
133076 103002 BCC 3$
133100 000137 104566 JMP .XCTER ;FAILED
133104 005737 147750 3$: TST VERIFY
133110 001015 BNE 2$ ;DON'T ZERO IF VERIFY
133112 012704 150764 MOV #LDATA,R4
133116 113702 150760 MOVB LDCNT,R2 ;IS WC = 0 ?
133122 001410 BEQ 2$ ;YES, NO ZEROING
133124 010301 MOV R3,R1 ;SETUP ADDRESS
133126 012400 1$: MOV (R4)+,R0 ;SETUP ZERO COUNT
133130 104112 D10ZRO ;DEPOSIT ZEROS, CLEARING CORE
133132 103476 BCS LD10ER
133134 012701 147724 MOV #.DPXAD,R1
133140 005302 DEC R2 ;COMPLETED ALL ZEROS ?
133142 001371 BNE 1$ ;NOT YET
133144 000676 2$: BR $LLD2 ;ALL REQUESTED CORE ZEROED.
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 291
DTA11 PAL[KL,SYS] Page 16 PROGRAM FILE LOADER, 4-SEPT-75
;LOAD TEN DATA
;CALLS "DPOSVR" WITH R0 = LOAD DATA ADDRESS
; R1 = PDP-10 ADDRESS
133146 113702 150760 LDRDIN: MOVB LDCNT,R2 ;GET LOAD WORD COUNT
133152 001423 BEQ 2$ ;WC = 0, TRANSFER BLOCK
133154 012704 150764 MOV #LDATA,R4 ;DATA PICKUP ADDRESS
133160 010301 1$: MOV R3,R1
133162 010400 MOV R4,R0 ;SETUP DATA PICKUP ADDRESS
133164 005737 147750 TST VERIFY
133170 001047 BNE LD10V
133172 104107 DPOSVR ;DEPOSIT & VERIFY
133174 103423 BCS LD10VR ;FAILED
133176 $LRDIN=.
133176 062723 000001 ADD #1,(R3)+ ;INCREMENT 10 ADDRESS
133202 005513 ADC (R3)
133204 005743 TST -(R3)
133206 062704 000006 ADD #6,R4 ;SETUP NEXT DATA PICKUP ADDRESS
133212 162702 000003 SUB #3,R2 ;DECREMENT WORD COUNT
133216 003360 BGT 1$ ;BR IF NOT DONE YET
133220 000650 BR $LLD2 ;BACK FOR NEXT LOAD FILE LINE
133222 012704 157204 2$: MOV #PGOADR,R4
133226 012324 MOV (R3)+,(R4)+ ;TRANSFER START ADDRESS
133230 011314 MOV (R3),(R4) ;TO GO ADDRESS
133232 012737 000002 157202 MOV #2,PGOCTL
133240 000137 131770 JMP LDDONE
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 292
DTA11 PAL[KL,SYS] Page 17 PROGRAM FILE LOADER, 4-SEPT-75
133244 100431 LD10VR: BMI LD10ER ;N-BIT SET DEPOSIT FAILED
133246 001430 BEQ LD10ER ;Z-BIT SET, EXAMINE FAILED
133250 LD10VE=.
PUSH R0
133252 104025 $PMSG ;"10 ERR,ADR="
133254 131743 $$TEN
133256 012700 147720 MOV #L10ADR,R0
133262 104137 PNTADR
133264 104025 $PMSG
133266 131713 $$COR ;"COR="
133270 010400 MOV R4,R0
133272 104042 PNT36
133274 104025 $PMSG
133276 131720 $$ACT ;"ACT="
POP R0
133302 104042 PNT36
133304 104031 PCRLF
133306 000733 BR $LRDIN
133310 010100 LD10V: MOV R1,R0
133312 104103 EXAM ;EXAMINE PRESENT CONTENTS
133314 103405 BCS LD10ER ;CAN'T EXAMINE
133316 010001 MOV R0,R1
133320 010400 MOV R4,R0
133322 104052 CMPR36 ;COMPARE WITH LOAD FILE
133324 103324 BCC $LRDIN ;OK
133326 000750 BR LD10VE ;BAD
133330 104025 LD10ER: $PMSG ;"10 ERR,ADR="
133332 131743 $$TEN
133334 012700 147720 MOV #L10ADR,R0
133340 104137 PNTADR
133342 000137 100004 JMP $CNTLC
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 293
DTA11 PAL[KL,SYS] Page 18 PROGRAM FILE LOADER, 4-SEPT-75
;DEVICE FILE DIRECTORY LOOKUP
133346 104055 DEVFIL: SETFLG ;INIT DEVICE LINE COUNT
133350 150744 DEVLC
133352 104217 TTPINI ;INIT TTY POINTERS
133354 005037 150274 CLR $OUTBF
133360 005737 157310 TST DEVTYP ;LOAD FROM WHAT DEVICE ?
133364 001405 BEQ DTFIL ; 0 = DECTAPE
133366 100402 BMI 1$ ; -1 = ACT10
133370 000137 100574 JMP RPFIL ; 1 = RP04
100574 .IIF NDF RPASB,RPFIL==$CMDER
.IF NDF MONASB
133374 000137 100574 1$: JMP $CMDER
.IFF
1$: JMP ACTFIL
.ENDC
133400 005737 157306 DTFIL: TST FLOPPY
133404 001402 BEQ 10$
133406 104230 RXFILE ;FLOPPY
133410 000401 BR 11$
133412 104207 10$: DTAFILE
133414 103402 11$: BCS 1$
133416 000137 131122 JMP DTRPLD
133422 000137 134144 1$: JMP $NONXF ;NON-EX FILE
;DECTAPE FORMAT
;FIRST DIRECTORY BLOCK = 102 (8)
;FILE DIRECTORY BLOCK
; LINK TO NEXT BLOCK
; 1 - FILE NAME 1
; 2 - FILE NAME 2
; 3 - FILE EXTENSION
; 4 - DATE
; 5 - SPARE
; 6 - START BLOCK #
; 7 - LENGTH
; 8 - END BLOCK #
; 9 - SPARE
;FILE DATA BLOCK
; LINK TO NEXT BLOCK
; 255 DATA WORDS
;DECTAPE PROGRAM FILE SEARCH
133426 104156 $DTAFILE:DTINIT ;DECTAPE INITIALIZATION
133430 005737 157306 DTAFL1: TST FLOPPY
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 294
DTA11 PAL[KL,SYS] Page 18.1 PROGRAM FILE LOADER, 4-SEPT-75
133434 001402 BEQ 20$
133436 104232 RXRDFL ;FLOPPY READ FILE
133440 000401 BR 21$
133442 104211 20$: DTRDFL ;READ UFD DIRECTORY BLOCK
133444 103500 21$: BCS 11$ ;EOF, CAN'T FIND FILE
133446 011000 MOV (R0),R0 ;PUT FIRST BUFFER ADR IN R0
133450 012701 000034 MOV #28.,R1 ;28 ENTRIES IN DIRECTORY
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 295
DTA11 PAL[KL,SYS] Page 19 PROGRAM FILE LOADER, 4-SEPT-75
133454 012037 151166 1$: MOV (R0)+,DIRST0 ;STORE RAD50 NAME
133460 012037 151170 MOV (R0)+,DIRST1
133464 012037 151164 MOV (R0)+,DTEXT ;STORE RAD50 EXT
133470 022020 CMP (R0)+,(R0)+ ;SKIP 2 WORDS
133472 012037 151152 MOV (R0)+,DTSTRT ;SAVE STARTING BLOCK #
133476 012037 151154 MOV (R0)+,DTLNGTH ;SAVE LENGTH
133502 022020 CMP (R0)+,(R0)+ ;MOVE TO NEXT ENTRY
PUSH <R0,R1>
133510 104155 R50UPK ;UNPACK NAME
133512 151166
133514 151172 DIRST0,DIRST2
133516 103446 BCS 10$
133520 104155 R50UPK
133522 151170
133524 151175 DIRST1,DIRST3+1
133526 103442 BCS 10$
133530 104155 R50UPK ;UNPACK EXTENSION
133532 151164
133534 151156 DTEXT,DTEXTS
133536 103436 BCS 10$ ;ERROR RETURN
133540 005737 151144 TST DVDIRF ;DOING "DIR" ?
133544 001042 BNE $DTDI1 ;YES
133546 012703 151200 MOV #NAMBF,R3 ;LOAD ADDRESS OF INPUT DATA
133552 012704 151172 MOV #DIRST2,R4 ;LOAD ADDRESS OF TABLE
133556 012700 000006 MOV #6,R0 ;SET COUNT
133562 122324 3$: CMPB (R3)+,(R4)+ ;CHECK NAME DATA
133564 001023 BNE 10$ ;BR IF NOT SAME
133566 005300 DEC R0 ;DONE 6 TIMES ?
133570 001374 BNE 3$ ;BR IF NOT
133572 012703 151206 MOV #EXTBF,R3 ;LOAD ADDRESS OF EXT INPUT
133576 012704 151156 MOV #DTEXTS,R4 ;LOAD ADDRESS OF EXT STOR
133602 012700 000003 MOV #3,R0 ;SET COUNT 3 CHARS
133606 122324 6$: CMPB (R3)+,(R4)+ ;CHECK EXT DATA
133610 001011 BNE 10$ ;BR IF NOT SAME
133612 005300 DEC R0 ;DONE 3 TIMES ?
133614 001374 BNE 6$ ;BR IF NOT
POP <R1,R0>
133622 013737 151152 151212 MOV DTSTRT,DVBUF ;LOAD STARTING BLOCK
EXIT ;NOW GO LOAD FILE
133630 000137 124062 JMP $EXIT
133634 $DTDI2=.
10$: POP <R1,R0>
133640 005301 DEC R1 ;BEEN THRU 28 ENTRIES ?
133642 001304 BNE 1$ ;NOT YET
133644 000671 BR DTAFL1 ;TRY NEXT UFD BLOCK
11$: EXITERR
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 296
DTA11 PAL[KL,SYS] Page 19.1 PROGRAM FILE LOADER, 4-SEPT-75
133646 000137 124034 JMP $EXITE
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 297
DTA11 PAL[KL,SYS] Page 20 PROGRAM FILE LOADER, 4-SEPT-75
;DECTAPE/FLOPPY DIRECTORY ROUTINE
133652 005037 151200 $DTDI1: CLR NAMBF
133656 005037 151164 CLR DTEXT
133662 022737 020040 151172 CMP #020040,DIRST2 ;DON'T PRINT SPACES
133670 001414 BEQ 1$
133672 104025 $PMSG ;PRINT "FILE"
133674 151172 DIRST2
133676 104032 PSPACE
133700 104025 $PMSG ;PRINT "EXT"
133702 151156 DTEXTS
133704 012700 000011 MOV #TAB,R0
133710 104027 PNTCHR
133712 013700 151154 MOV DTLNGTH,R0
133716 104037 PNTDEC ;PRINT NUMBER OF BLOCKS
133720 104031 PCRLF
133722 000744 1$: BR $DTDI2 ;GO DO NEXT
133724 104022 $DI: TTITRM
133726 104044 PNORML
133730 005737 157310 TST DEVTYP
133734 001403 BEQ $DTDIR ;DECTAPE
133736 100400 BMI 1$ ;ILLEGAL ON ACT10
.LIF DF RPASB
JMP $RPDIR ;RP04
133740 000137 113364 1$: JMP $CMDE
133744 104055 $DTDIR: SETFLG
133746 151144 DVDIRF ;SET DIRECTORY FLAG
133750 005737 157306 TST FLOPPY
133754 001402 BEQ 1$
133756 104230 RXFILE ;FLOPPY
133760 000401 BR 2$
133762 104207 1$: DTAFILE
133764 000137 100014 2$: JMP $CONSL
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 298
DTA11 PAL[KL,SYS] Page 21 PROGRAM FILE LOADER, 4-SEPT-75
;READ DEVICE FRAME SUBROUTINE
133770 005737 151146 $DVFRAM:TST DVCNT ;USED ALL DATA ?
133774 003002 BGT 1$ ;NO
133776 104160 DVDATA ;YES, READ NEXT BLOCK
134000 103431 BCS DVEOF ;EOF
134002 117700 015142 1$: MOVB @DVADR,R0 ;GET ONE BYTE
134006 005237 151150 INC DVADR ;INCREMENT PICKUP ADDRESS
134012 005337 151146 DEC DVCNT ;COUNT IT
134016 042700 177400 BIC #177400,R0 ;CLEAR JUNK, CHAR IS 8 BITS
134022 060037 151110 ADD R0,$CKS11
134026 000444 BR $$DVX
;READ DEVICE BUFFER SUBROUTINE
$DVDATA:
.IF DF RPASB
TST DEVTYP
BNE 4$
.ENDC
134030 005737 157306 TST FLOPPY
134034 001402 BEQ 1$
134036 104232 RXRDFL ;FLOPPY
134040 000401 BR 11$
134042 104211 1$: DTRDFL ;DECTAPE READ
134044 103405 11$: BCS 3$ ;EOF
134046 012037 151150 2$: MOV (R0)+,DVADR ;SAVE BUFFER ADDRESS
134052 011037 151146 MOV (R0),DVCNT ;SAVE BUFFER BYTE COUNT
134056 000430 BR $$DVX
3$: EXITERR ;EOF
134060 000137 124034 JMP $EXITE
.IF DF RPASB
4$: MOV #FILDSB,R0
RPRDFL ;RP04 FILE DATA BLOCK READ
BCC 2$
CMP #1,R0 ;ERROR, EOF ?
BEQ DVEOF ;YES
RPERROR ;NO, JUST ERROR
.ENDC
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 299
DTA11 PAL[KL,SYS] Page 22 PROGRAM FILE LOADER, 4-SEPT-75
134064 005737 150754 DVEOF: TST LDCNTL ;EOF, PRINTING A HELP FILE ?
134070 100404 BMI 1$ ;YES
PMSG <\EOF ?>
134072 104025 $PMSG
134074 147020 $$CLIT
134076 000137 100004 JMP $CNTLC
134102 000137 140510 1$: JMP DAHLPD
;ASSEMBLE ONE 16 BIT DATA WORD
134106 104163 $DVWRD: DVFRAM ;READ FRAME
134110 010037 151106 MOV R0,LTMP
134114 104163 DVFRAM ;GET ANOTHER FRAME
134116 000300 SWAB R0 ;PLACE IN HIGH ORDER BYTE
134120 050037 151106 BIS R0,LTMP ;PUT 2 BYTES TOGETHER
134124 013700 151106 MOV LTMP,R0 ;PUT BACK IN R0
134130 000403 BR $$DVX
;DECTAPE INITIALIZATION
134132 012737 000102 151212 $DTINIT:MOV #102,DVBUF ;SET STARTING BLOCK NUMBER
$$DVX: EXIT
134140 000137 124062 JMP $EXIT
;FILE NOT FOUND
134144 005737 151140 $NONXF: TST DIAFLG ;DOING "DIAMON" FILE SELECTION ?
134150 001402 BEQ 1$ ;NO
134152 000137 112234 JMP DIANF ;YES, "DIAMON" FILE NOT FOUND
1$: PMSG <NON-EX FILE>
134156 104025 $PMSG
134160 147027 $$CLIT
134162 000137 100004 JMP $CNTLC
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 300
DTA11 PAL[KL,SYS] Page 23 PROGRAM FILE LOADER, 4-SEPT-75
;RAD50 UNPACK SUBROUTINE
134166 062766 000004 000012 $R50UPK:ADD #4,12(SP) ;RETURN OVER TRAILING PARAMETERS
PUSH R0
134176 013705 147654 MOV $EMADR,R5
134202 012504 MOV (R5)+,R4 ;RAD50 ADDRESS TO R4
134204 011404 MOV (R4),R4 ;RAD50 VALUE TO R4
134206 011503 MOV (R5),R3 ;STORE ADDRESS TO R3
134210 012701 000002 MOV #2,R1
134214 012746 777777 MOV #-1,-(6) ;SET STACK STOP
134220 010446 1$: MOV R4,-(6) ;SAVE PREVIOUS VALUE
134222 005004 CLR R4 ;CLEAR R4 FOR NEXT REMAINDER
134224 011600 2$: MOV (6),R0 ;TAKE 3/4 OF VALUE
134226 151700 BISB @PC,R0 ;???????
134230 010002 MOV R0,R2
134232 006002 ROR R2
134234 006202 ASR R2
134236 160200 SUB R2,R0
134240 042700 000037 BIC #37,R0 ;PREPARE TO TAKE 1/4 OF RESULT
134244 160016 SUB R0,(6) ;BUT REDUCE ORIGINAL BY 3/4
134246 006000 ROR R0 ;GET 3/16 OF ORIGINAL
134250 006200 ASR R0
134252 160016 SUB R0,(6)
134254 060004 ADD R0,R4 ;THIS GIVES 1ST APPROXIMATION
134256 021627 000047 CMP (6),#47 ;LOW AS POSSIBLE ?
134262 101360 BHI 2$ ;IF SO THIS IS BYTE REQUIRED
134264 006204 ASR R4
134266 006204 ASR R4
134270 006204 ASR R4
134272 005301 DEC R1 ;DONE 2 BYTES ?
134274 001351 BNE 1$ ;BR IF NOT
134276 120427 000047 CMPB R4,#47 ;LAST BYTE TOO BIG ?
134302 101005 BHI 4$ ;IF YES, ERROR
134304 105704 3$: TSTB R4 ;SPACE ?
134306 001414 BEQ 6$ ;IF YES, ADD 40
134310 120427 000035 CMPB R4,#35 ;IF UNUSED CODE ....
134314 001003 BNE 5$
134316 012704 000130 4$: MOV #'X,R4 ;ASCII X TO R4
134322 000414 BR 9$ ;GO TO ERROR EXIT
134324 120427 000033 5$: CMPB R4,#33 ;$ ?
134330 001407 BEQ 8$ ;IF YES, GO ADD 11
134332 101004 BHI 7$ ;FOR DIGIT OR DOT ADD 22
134334 062704 000040 ADD #40,R4 ;FOR LETTER ADD 100
134340 062704 000016 6$: ADD #16,R4
134344 062704 000011 7$: ADD #11,R4
134350 062704 000011 8$: ADD #11,R4
134354 110423 9$: MOVB R4,(3)+ ;STORE RESULT
134356 012604 MOV (6)+,R4 ;GET NEXT BYTE
134360 100351 BPL 3$ ;BR IF NOT STACK STOP
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 301
DTA11 PAL[KL,SYS] Page 23.1 PROGRAM FILE LOADER, 4-SEPT-75
POP R0
134364 000665 $$$DVX: BR $$DVX
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 302
DTA11 PAL[KL,SYS] Page 24 PROGRAM FILE LOADER, 4-SEPT-75
;DECTAPE READ/WRITE FILE ROUTINES
134366 005737 151212 $DTRDFL:TST DVBUF ;ANY DATA BLOCKS REMAINING ?
134372 001002 BNE $DTRFL ;YES
$$DTXE: EXITERR ;NO
134374 000137 124034 JMP $EXITE
134400 013737 151212 151072 $DTRFL: MOV DVBUF,DTBLK ;SET REQUESTED BLOCK
134406 012737 151212 151074 MOV #DVBUF,CASAV ;SET BUFFER ADDRESS
134414 012737 777400 151076 MOV #-256.,WCSAV ;SET WORD COUNT
134422 104161 DTREAD ;DECTAPE READ
134424 103404 BCS $$DTXC ;FAILED
134426 012700 134464 MOV #$DTINFO,R0
$$DTX: EXIT
134432 000137 124062 JMP $EXIT
134436 000137 100004 $$DTXC: JMP $CNTLC ;FAILED
134442 012737 151212 151074 $DTWTFL:MOV #DVBUF,CASAV
134450 012737 777400 151076 MOV #-256.,WCSAV
134456 104205 DTWRT ;WRITE DECTAPE
134460 103364 BCC $$DTX ;OK
134462 000765 BR $$DTXC ;FAILED
134464 151214 $DTINFO:DVBUF+2 ;FIRST USABLE DATA WORD
134466 000776 510. ;BYTE COUNT
134470 012700 151072 $DTBASE:MOV #DTBLK,R0 ;RETURN PARAMETER BASE ADDRESS
134474 000756 BR $$DTX
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 303
DTA11 PAL[KL,SYS] Page 25 PROGRAM FILE LOADER, 4-SEPT-75
;DECTAPE DEVICE READ/WRITE ROUTINE
134476 012700 000005 $DTREAD:MOV #TCRDATA+TCDO,R0
134502 000402 BR $DTXFR
134504 012700 000015 $DTWRT: MOV #TCWDATA+TCDO,R0
134510 010037 151100 $DTXFR: MOV R0,DTXCMD ;SAVE COMMAND
134514 012737 000003 151102 MOV #3,TRYCTR ;SET MAXIMUM TRY COUNT, 3.
134522 113704 157277 $DTXF1: MOVB DTUNIT+1,R4 ;SETUP UNIT
134526 013737 151076 177344 MOV WCSAV,@#TCWC ;SETUP WORD COUNT
134534 013737 151074 177346 MOV CASAV,@#TCBA ;SETUP READ ADDRESS
134542 012700 000003 MOV #TCRNUM+TCDO,R0
134546 012701 177342 MOV #TCCM,R1
134552 012703 004000 MOV #TCREV,R3
134556 013702 151072 MOV DTBLK,R2 ;SETUP BLOCK # AND DIRECTION
134562 100004 BPL $DTXF2
134564 005402 NEG R2
134566 062704 000010 ADD #10,R4 ;REVERSE, SET REV INDICATOR
134572 050300 BIS R3,R0 ;START UP IN REVERSE
134574 012737 000006 151114 $DTXF2: MOV #6,REVCNT ;SET MAXIMUM REVERSAL COUNT, 6.
134602 005037 151112 CLR INTSW ;SET INTSW FOR SEARCH
$DTXF3: PUSH R3
134610 004737 120666 JSR PC,$TIRDY ;ANY OPERATOR INTERRUPTS ?
134614 103413 BCS 2$ ;NO
134616 113703 147764 MOVB $TICHR,R3 ;GET CHAR
134622 142703 000200 BICB #200,R3
134626 122703 000003 CMPB #CNTRLC,R3 ;IS IT CONTROL C ?
134632 001004 BNE 2$ ;NO
134634 042711 000116 BIC #116,(R1) ;YES, STOP DECTAPE
134640 000137 120522 JMP $TICC ;AND ABORT
2$: POP R3
134646 053700 157276 BIS DTUNIT,R0 ;SELECT UNIT
134652 010011 MOV R0,(R1) ;SET TCCM
134654 032711 100200 1$: BIT #TCERR+TCRDY,(R1) ;WAIT FOR DONE OR ERROR
134660 001775 BEQ 1$
134662 100445 BMI DTER ;BR IF ERROR
134664 105737 151112 TSTB INTSW ;SEARCH OR TRANSFER ?
134670 001110 BNE DATINT ;BR IF TRANSFER
134672 023702 177350 CMP @#TCDT,R2 ;BLOCK MATCH ?
134676 001423 BEQ DTSRF ;BR IF YES
134700 003011 BGT DTSRE ;BR IF LARGER
134702 030311 BIT R3,(R1) ;SMALLER, REVERSE ?
134704 001740 BEQ $DTXF3 ;FORWARD, CONTINUE DIRECTION
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 304
DTA11 PAL[KL,SYS] Page 26 PROGRAM FILE LOADER, 4-SEPT-75
134706 062737 000003 177350 DTSRA: ADD #3,@#TCDT ;+3 TO TCDT
134714 023702 177350 CMP @#TCDT,R2 ;LOWER BY 3 OR MORE ?
134720 101461 BLOS DTREV ;YES, GO REVERSE
134722 000731 BR $DTXF3 ;NO, CONTINUE DIRECTION
134724 030311 DTSRE: BIT R3,(R1) ;BLK HIGH, CHECK DIRECTION
134726 001327 BNE $DTXF3 ;BR IF REV, CONTINUE DIRECTION
134730 162737 000003 177350 SUB #3,@#TCDT ;FWD, -3 TO TCDT
134736 020237 177350 CMP R2,@#TCDT ;HIGHER BY 3 OR MORE ?
134742 003450 BLE DTREV ;REVERSE IF HIGHER BY 3 OR MORE
134744 000720 BR $DTXF3 ;NO, CONTINUE DIRECTION
134746 123704 177343 DTSRF: CMPB @#TCCM1,R4 ;BLOCK SAME, SAME DIRECTION ?
134752 001315 BNE $DTXF3 ;BR IF NOT, CONTINUE SEARCH
134754 105137 151112 $DTXF4: COMB INTSW ;WANTED ???
134760 113700 151100 MOVB DTXCMD,R0 ;SET UP XFER COMMAND
134764 005737 151072 TST DTBLK
134770 100306 BPL $DTXF3 ;FORWARD READ
134772 050300 BIS R3,R0 ;REVERSE READ
134774 000704 BR $DTXF3
134776 105737 151112 DTER: TSTB INTSW ;SEARCH OR XFER ?
135002 001003 BNE DTERA ;BR IF XFER
135004 005737 177340 TST @#TCST ;END ZONE ?
135010 100425 BMI DTREV ;BR IF YES, TO REVERSE
135012 032737 063000 177340 DTERA: BIT #TCSOFT,@#TCST ;CHECK FOR SOFT ERROR
135020 001414 BEQ DTHDER ;BR IF NOT SOFT ERROR
135022 105337 151102 DECB TRYCTR ;3RD TRY ?
135026 001667 BEQ $DTXF3 ;BR IF YES
135030 000634 BR $DTXF1 ;GO TRY AGAIN
135032 042711 000116 DTERB: BIC #116,(R1) ;STOP DECTAPE
PMSG <?SOFT>
135036 104025 $PMSG
135040 147043 $$CLIT
DTERC: PMSG < DTA ERR>
135042 104025 $PMSG
135044 147051 $$CLIT
EXITERR
135046 000137 124034 JMP $EXITE
135052 042711 000116 DTHDER: BIC #116,(R1) ;STOP DECTAPE
PMSG <?HARD>
135056 104025 $PMSG
135060 147062 $$CLIT
135062 000767 BR DTERC
135064 060300 DTREV: ADD R3,R0 ;CHANGE DIRECTION
135066 042700 010000 BIC #BIT12,R0
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 305
DTA11 PAL[KL,SYS] Page 26.1 PROGRAM FILE LOADER, 4-SEPT-75
135072 105337 151114 DTREVC: DECB REVCNT ;6TH REVERSAL ?
135076 001243 BNE $DTXF3 ;BR IF NOT
135100 042711 000116 BIC #116,(R1) ;STOP DECTAPE
PMSG <?REV>
135104 104025 $PMSG
135106 147070 $$CLIT
135110 000754 BR DTERC
135112 042711 000116 DATINT: BIC #116,(R1) ;STOP DECTAPE
EXIT ;DONE
135116 000137 124062 JMP $EXIT
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 306
DTA11 PAL[KL,SYS] Page 27 ASCR50 ASCII TO RAD50 CONVERSION ROUTINE
.SBTTL ASCR50 ASCII TO RAD50 CONVERSION ROUTINE
;CALL:
; ASCR50
; ASCII ADDRESS
; RAD50 ADDRESS
;NINE BYTES OF ASCII INPUT
;THREE WORDS OF RAD50 OUTPUT
135122 062766 000004 000012 $ASCR50:ADD #4,12(SP) ;RETURN OVER TRAILING PARAMETERS
PUSH R0
135132 013705 147654 MOV $EMADR,R5
135136 012501 MOV (R5)+,R1 ;SETUP ASCII ADDRESS
135140 011504 MOV (R5),R4 ;SETUP RAD50 STORAGE ADDRESS
135142 012703 066600 MOV #066600,R3
135146 005014 1$: CLR (R4) ;RESULT WORD
135150 012700 135240 2$: MOV #30$,R0 ;SETUP SCAN TABLE
135154 112002 3$: MOVB (R0)+,R2 ;PUT CONVERSION IN R2
135156 001425 BEQ 20$ ;IF END OF TABLE, ERROR
135160 121120 CMPB (R1),(R0)+ ;COMPARE ASCII CHAR
135162 103423 BLO 20$ ;IF LESS THAN TABLE ENTRY, ERROR
135164 121120 CMPB (R1),(R0)+
135166 101372 BHI 3$ ;LOOP, HAVEN'T FOUND YET
135170 112100 MOVB (R1)+,R0 ;FOUND, ASCII CHAR TO R0
135172 060200 ADD R2,R0 ;CONVERT
135174 006314 ASL (R4)
135176 006314 ASL (R4)
135200 006314 ASL (R4)
135202 061400 ADD (R4),R0
135204 006314 ASL (R4)
135206 006314 ASL (R4)
135210 060014 ADD R0,(R4)
135212 006303 ASL R3 ;SHIFT RAD50 WORD COUNTER
135214 100755 BMI 2$ ;NOT DONE WITH THIS RAD50 YET
135216 001402 BEQ 10$ ;IF 0, ALL DONE
135220 005724 TST (R4)+ ;STEP TO NEXT RAD50 WORD
135222 000751 BR 1$ ;GO DO NEXT
10$: POP R0
EXIT
135226 000137 124062 JMP $EXIT
20$: POP R0
EXITERR
135234 000137 124034 JMP $EXITE
135240 340
135241 040
135242 040 30$: .BYTE 340,' ,' ;SPACE
135243 367
135244 044
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 307
DTA11 PAL[KL,SYS] Page 27.1 ASCR50 ASCII TO RAD50 CONVERSION ROUTINE
135245 044 .BYTE 367,'$,'$ ;DOLLAR SIGN
135246 356
135247 056
135250 056 .BYTE 356,'.,'. ;PERIOD
135251 356
135252 060
135253 071 .BYTE 356,'0,'9 ;DIGITS
135254 300
135255 101
135256 132 .BYTE 300,'A,'Z ;UPPER CASE LETTERS
; .ENABL LC
135257 240
135260 141
135261 172 .BYTE 240,'a,'z ;LOWER CASE LETTERS
135262 000 .BYTE 0 ;INDICATE THE END OF THE TABLE
135264 .EVEN
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 308
KLDCP PAL[KL,SYS] Page 5.6 ASCR50 ASCII TO RAD50 CONVERSION ROUTINE
;Disk boot for WAITS
.LIF DF BOOASB
.INSRT BOOT.PAL
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 309
BOOT PAL[KL,SYS] Page 1 ASCR50 ASCII TO RAD50 CONVERSION ROUTINE
COMMENT ⊗ VALID 00003 PAGES
C REC PAGE DESCRIPTION
C00001 00001
C00002 00002 .SBTTL DSKDMP BOOTSTRAP LOADING SERVICE, JBR 23-MAY-76 - LDBOOT
C00005 00003 $DS DS command to copy DSKDMP BOOT into KL10 and start it.
C00007 ENDMK
C⊗;
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 310
BOOT PAL[KL,SYS] Page 2 DSKDMP BOOTSTRAP LOADING SERVICE, JBR 23-MAY-76 - LDBOOT
.SBTTL DSKDMP BOOTSTRAP LOADING SERVICE, JBR 23-MAY-76 - LDBOOT
;bootbg is located in 11 high core (152210)
;bootsz is 2260
;LD Command to load the bootstrap code from the dectape into 11 memory.
.IF DF BOOASB
;LOAD DSKDMP BOOTSTRAP
135264 012703 147722 LDBOOT: MOV #L10ADR+2,R3 ;SETUP BLOCK START ADDRESS POINTER
135270 005013 CLR (R3)
135272 113713 150761 MOVB LDCNT+1,(R3) ;HI-BYTE OF LDCNT IS ADR BITS 18 & 19
135276 013743 150762 MOV LDADR,-(R3) ;SETUP ADR BITS 20-35
135302 005737 150750 TST LDZBLK ;IS IT A Z LINE?
135306 001437 BEQ LDBDAT ;NO, LOAD DATA
135310 012337 152302 MOV (R3)+,BOOTBG ;STARTING ZERO ADDRESS (LOW 16 BITS)
135314 011337 152304 MOV (R3),BOOTBG+2 ; HIGH TWO BITS (18 AND 19)
135320 005001 CLR R1
135322 012702 150764 MOV #LDATA,R2
135326 113703 150760 MOVB LDCNT,R3
135332 062201 1$: ADD (R2)+,R1 ;ACCUMULATE TOTAL # WORDS TO ZERO
135334 005303 DEC R3
135336 001375 BNE 1$
135340 010102 MOV R1,R2
SL R1,1
135344 060201 ADD R2,R1 ;TIMES 3 IS NUMBER OF PDP-11 WORDS
135346 020127 002260 CMP R1,#BOOTSZ
135352 003404 BLE 2$ ;BRANCH IF SMALL ENOUGH
PMSG <?BOOT TOO LONG>
135354 104025 $PMSG
135356 147075 $$CLIT
135360 000137 100004 JMP $CNTLC
135364 012701 152312 2$: MOV #BOOTBF,R1
135370 012702 002260 MOV #BOOTSZ,R2
135374 005021 3$: CLR (R1)+
135376 005302 DEC R2
135400 001375 BNE 3$ ;CLEAR OUT THE BOOT BUFFER
135402 000137 131146 LDBLD2: JMP LLD2 ;DO NEXT LINE
135406 113700 150760 LDBDAT: MOVB LDCNT,R0 ;WC
135412 001421 BEQ LDBXFR ;WC=0 MEANS TRANSFER BLOCK
135414 012701 150764 MOV #LDATA,R1
135420 013702 150762 MOV LDADR,R2
135424 163702 152302 SUB BOOTBG,R2 ;GET OFFSET FROM START OF BUFFER
135430 010203 MOV R2,R3
SL R2,2
SL R3,1
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 311
BOOT PAL[KL,SYS] Page 2.1 DSKDMP BOOTSTRAP LOADING SERVICE, JBR 23-MAY-76 - LDBOOT
135440 060302 ADD R3,R2 ;TIMES 6 GIVES BYTE OFFSET FROM BOOTBF
135442 062702 152312 ADD #BOOTBF,R2
135446 012122 5$: MOV (R1)+,(R2)+ ;COPY A WORD
135450 005300 DEC R0
135452 001375 BNE 5$
135454 000752 BR LDBLD2
135456 012337 152306 LDBXFR: MOV (R3)+,BOOTSA
135462 011337 152310 MOV (R3),BOOTSA+2 ;SAVE AWAY STARTING ADDRESS
135466 000137 131770 JMP LDDONE
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 312
BOOT PAL[KL,SYS] Page 3 DSKDMP BOOTSTRAP LOADING SERVICE, JBR 23-MAY-76 - LDBOOT
;$DS DS command to copy DSKDMP BOOT into KL10 and start it.
135472 104022 $DS: TTITRM
135474 005737 152306 TST BOOTSA
135500 001007 BNE 2$
135502 005737 152310 TST BOOTSA+2
135506 001004 BNE 2$
PMSG <?LOAD DSKDMP - USE LD>
135510 104025 $PMSG
135512 147114 $$CLIT
135514 000137 100004 JMP $CNTLC
135520 023727 157262 000036 2$: CMP PEBITS,#36
135526 001410 BEQ 3$
135530 023727 157262 000037 CMP PEBITS,#37
135536 001404 BEQ 3$
PMSG <FIX PARITY ENABLES - PE 36>
135540 104025 $PMSG
135542 147142 $$CLIT
135544 000137 100004 JMP $CNTLC
135550 023727 157252 000017 3$: CMP CLKDFL+4,#17
135556 001402 BEQ 4$
PMSG <SOME CACHE DISABLED - USE CE 17\>
135560 104025 $PMSG
135562 147175 $$CLIT
135564 012703 147722 4$: MOV #L10ADR+2,R3
135570 013713 152304 MOV BOOTBG+2,(R3)
135574 013743 152302 MOV BOOTBG,-(R3)
135600 012702 000620 MOV #BOOTWD,R2 ;NUMBER OF PDP-10 WORDS IN BUFFER
135604 012704 152312 MOV #BOOTBF,R4
135610 104076 MRESET
135612 104100 SM
135614 010301 1$: MOV R3,R1
135616 010400 MOV R4,R0
135620 104107 DPOSVR
135622 103420 BCS DSVER
135624 005213 INC (R3) ;STAY IN SAME 64K SECTION
135626 062704 000006 ADD #6,R4 ;NEXT PDP-10 WORDS WORTH
135632 005302 DEC R2
135634 001367 BNE 1$
135636 012704 157204 MOV #PGOADR,R4
135642 013724 152306 MOV BOOTSA,(R4)+
135646 013714 152310 MOV BOOTSA+2,(R4)
135652 012737 000002 157202 MOV #2,PGOCTL
135660 000137 113216 JMP $$GO ;START IT UP
DSVER: PMSG <DEX ERROR IN DS>
135664 104025 $PMSG
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 313
BOOT PAL[KL,SYS] Page 3.1 DSKDMP BOOTSTRAP LOADING SERVICE, JBR 23-MAY-76 - LDBOOT
135666 147236 $$CLIT
135670 000137 100004 JMP $CNTLC
.ENDC ;IF DF BOOASB
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 314
KLDCP PAL[KL,SYS] Page 5.7 DSKDMP BOOTSTRAP LOADING SERVICE, JBR 23-MAY-76 - LDBOOT
;RX01 floppies
.LIF DF RXASB
.INSRT FLOPPY.PAL
;RP04 disk
.LIF DF RPASB
.INSRT RP0411.PAL
;queued message protocol
.LIF DF %%QMP
.INSRT QMP11.PAL
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 315
QMP11 PAL[KL,SYS] Page 1 DSKDMP BOOTSTRAP LOADING SERVICE, JBR 23-MAY-76 - LDBOOT
COMMENT ⊗ VALID 00015 PAGES
C REC PAGE DESCRIPTION
C00001 00001
C00003 00002 MACROS AND QUEUE ENTRY DEFINITIONS
C00005 00003 ETHERNET OUTPUT COMPLETION INTERRUPT ROUTINE ENOINT, SNDEN, SNDENR
C00010 00004 ENIINT ETHERNET INPUT COMPLETION INTERRUPT ROUTINE
C00017 00005 DTEINT, DTE10D Interrupt routines
C00020 00006 DTE11D - COMPLETION OF TO11 TRANSFER FROM DTE
C00026 00007 QMPCMD - ROUTINE CALLED FROM KLDCP WHEN 10 SENDS ITEM COUNT
C00029 00008 SND10 - ROUTINE TO QUEUE BLOCK FOR XFER TO 10
C00032 00009 QINI - ROUTINE TO INITIALIZE QUEUE STRUCTURES
C00035 00010 $QUEUE - GENERALIZED QUEUE ROUTINE
C00037 00011 QMPINI - ROUTINE TO INITIALIZE INTERRUPT ADDRESSES ETC.
C00040 00012 RQCB/RLCB: first fit dynamic core allocation routines
C00042 00013 $RLCB - ReLease Core Block
C00046 00014 $RQCB - REQUEST CORE BLOCK
C00050 00015 $SAVAL, $SAVVR, $SAVRG Register Save and Restore Co-routines
C00054 ENDMK
C⊗;
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 316
QMP11 PAL[KL,SYS] Page 2 DSKDMP BOOTSTRAP LOADING SERVICE, JBR 23-MAY-76 - LDBOOT
; MACROS AND QUEUE ENTRY DEFINITIONS
;
.MACRO CALL A
JSR PC,A
.ENDM
.MACRO RETURN
RTS PC
.ENDM
.MACRO SAVAL
JSR PC,$SAVAL
.ENDM
.MACRO SAVVR
JSR R2,$SAVVR
.ENDM
.MACRO SAVRG
JSR R5,$SAVRG
.ENDM
.MACRO QUEUE A
JSR R5,$QUEUE
.WORD A
.ENDM
.MACRO QCLR A
JSR R5,$QCLR
.WORD A
.ENDM
; THE FOLLOWING DEFINITIONS ARE FOR QUEUE HEADERS
;
000000 QCHN=0 ; OFFSET TO CHAIN POINTER IN QUEUE ENTRY
000002 QSIZ=2 ; OFFSET FROM ENTRY TO BYTE COUNT FOR QUEUE ENTRY
000004 QREQ=4 ; OFFSET FROM ENTRY TO REQUEST VALUE FOR QUEUE ENTRY
000006 QENWC=6 ; OFFSET TO ETHERNET PACKET WORD COUNT
000010 QENMSG==10 ; OFFSET TO START OF EN MESSAGE INSIDE QUEUE BLOCK
;
000006 QHDRSZ=6 ; SIZE OF QUEUE ENTRY HEADER
;
000000 QNOPMS=0 ; This packet is a no-op
000001 QECHRY=1 ; THIS PACKET IS AN ECHO RESPONSE
000002 QECHRQ=2 ; REQUEST for an echo response
000003 QENPKT=3 ; An ethernet packet
000004 QENADR=4 ; An ethernet host address.
000005 QDTMSG=5 ; Dectape message
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 317
QMP11 PAL[KL,SYS] Page 2.1 DSKDMP BOOTSTRAP LOADING SERVICE, JBR 23-MAY-76 - LDBOOT
000006 QENBCC=6 ; Ethernet broadcast-packet control command
;
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 318
QMP11 PAL[KL,SYS] Page 3 DSKDMP BOOTSTRAP LOADING SERVICE, JBR 23-MAY-76 - LDBOOT
; ETHERNET OUTPUT COMPLETION INTERRUPT ROUTINE ENOINT, SNDEN, SNDENR
;
;JJW 11/85 Code commented out on this page is replaced by new retry code.
;
ENOINT: CALL 1$ ; CALL THE REAL INTERRUPT HANDLER
135674 004737 135702 JSR PC,1$
135700 000002 RTI ; THEN RETURN FROM INTERRUPT
;
; THIS INTERRUPT HANDLER WILL SAVE AND RESTORE REGISTERS
;
1$: SAVVR ; SAVE REGS R0-R2
135702 004237 140376 JSR R2,$SAVVR
135706 005737 160024 TST ENOCSR ; TEST FOR ERROR INDICATION
135712 100417 BMI 3$ ; IF MI THEN COLLISION OR OTHER ERROR
135714 005237 157130 INC EN0PKO ; INCREMENT COUNT OF SUCCESSFUL I/OS
135720 013700 157066 2$: MOV ENETQ,R0 ; GET QUEUE ADDRESS TO RELEASE BLOCK
135724 001425 BEQ 5$ ; QUEUE EMPTY, MAYBE QUEUE RESET?
135726 011037 157066 MOV (R0),ENETQ ; UNCHAIN BLOCK FROM QUEUE
135732 001002 BNE 21$ ; IF NE THEN MORE IN CHAIN
135734 005037 157070 CLR ENETQ+2 ; IF QUEUE EMPTY, ZERO NEWEST POINTER
21$:
CALL QGIVE ; NOW GO RELEASE THE CORE BLOCK
135740 004737 137120 JSR PC,QGIVE
CALL SNDEN ; CHECK ETHERNET QUEUE AND RESTART I/O
135744 004737 136006 JSR PC,SNDEN
RETURN ; RETURN FROM INTERRUPT
135750 000207 RTS PC
;;3$: INC EN0ER1 ; STEP TOTAL RETRY COUNT
;; DEC EN0TRY ; DECREMENT CURRENT RETRY COUNT
;; BGT 4$ ; OK, RETRY THE MESSAGE AGAIN
;; INC EN0PER ; STEP COUNT OF PERMANENT ERRORS
;; BR 2$ ; THROW THE BUFFER AWAY, TRY NEXT
;;
;;4$: CALL SNDENR ; RETRY THE CURRENT BUFFER
;; RETURN ; AND RETURN
;JJW 11/85 New retry code
135752 005237 157126 3$: INC EN0ER1 ;Step total retry count
135756 006337 157076 ASL EN0DLY ;Double previous delay amount
135762 100403 BMI 4$ ;Jump if too much
CALL SNDENR ;Retry the current buffer
135764 004737 136014 JSR PC,SNDENR
RETURN
135770 000207 RTS PC
135772 005237 157124 4$: INC EN0PER ;Step count of permanent errors
135776 000750 BR 2$ ;Throw the buffer away, try next
;JJW 11/85 end new code
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 319
QMP11 PAL[KL,SYS] Page 3.1 DSKDMP BOOTSTRAP LOADING SERVICE, JBR 23-MAY-76 - LDBOOT
136000 005037 160024 5$: CLR ENOCSR ; CLEAR INTERRUPT ENABLE BIT
RETURN
136004 000207 RTS PC
; SNDEN SNDENR - Transmit message at head of ENET Queue to the Ethernet
;
;SNDENR is the entry point for a retry.
;
;;SNDEN:MOV #10,EN0TRY ; SET DEFAULT RETRY COUNT
;JJW 11/85 begin new code
136006 012737 000001 157076 SNDEN: MOV #1,EN0DLY ;Start delay at 1
;Jeff Mogul says we should set the delay to about 50 if the previous packet
;dest was same as this (or was a broadcast), to prevent back-to-back packets
;being thrown away by the receiver's interface. We don't do this yet.
;JJW 11/85 end new code
136014 013700 157066 SNDENR: MOV ENETQ,R0 ; GET ADDRESS OF NEXT QUEUE ENTRY
136020 001422 BEQ 3$ ; NOTHING IN QUEUE
136022 016001 000006 MOV QENWC(R0),R1 ; GET PACKET WORD COUNT FROM BLOCK
136026 003001 BGT 1$ ; IF GT THEN CONTINUE
136030 104000 FATAL ; OTHERWISE INDICATE ERROR
136032 005401 1$: NEG R1 ; MAKE 2'S COMPLEMENT FOR I/O
136034 010137 160020 2$: MOV R1,ENOWC ; SET WORD COUNT IN EN DEVICE
136040 062700 000010 ADD #QENMSG,R0 ; POINT TO DATA IN QUEUE ENTRY
136044 010037 160022 MOV R0,ENOWA ; SET WORD ADDRESS IN EN DEVICE
;; MOV EN0TRY,R2 ; USE RETRY VALUE TO SET DELAY
;; MOV EN0DLY(R2),ENODLY ; SET DELAY VALUE IN EN DEVICE
;JJW 11/85 begin new code
136050 013737 157076 160026 MOV EN0DLY,ENODLY ;Set delay value in interface
;JJW 11/85 end new code
136056 012737 000101 160024 MOV #101,ENOCSR ; SET GO AND INTERRUPT ENABLE
RETURN ; AND RETURN
136064 000207 RTS PC
136066 005037 160024 3$: CLR ENOCSR ; CLEAR INT ENABLE AND GO
RETURN
136072 000207 RTS PC
;
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 320
QMP11 PAL[KL,SYS] Page 4 DSKDMP BOOTSTRAP LOADING SERVICE, JBR 23-MAY-76 - LDBOOT
; ENIINT ETHERNET INPUT COMPLETION INTERRUPT ROUTINE
;
; ENTERED AT COMPLETION OF ETHERNET INPUT
;
ENIINT: CALL 1$ ; CALL THE REAL INTERRUPT HANDLER
136074 004737 136102 JSR PC,1$
136100 000002 RTI ; AND RETURN FROM INTERRUPT
;
1$: SAVVR ; SAVE REGS R0-R2
136102 004237 140376 JSR R2,$SAVVR
136106 010346 MOV R3,-(SP) ; AND ONE MORE
136110 012703 000002 MOV #2,R3 ; Select other input buffer
136114 163703 157110 SUB EN0IND,R3
136120 010346 MOV R3,-(SP) ; Save on index to input buffer on stack
136122 013746 160034 MOV ENICSR,-(SP) ; Save status of this packet
136126 013746 160030 MOV ENIWC,-(SP) ; Save residual word count
CALL ENISET ; Start reading next packet
136132 004737 136320 JSR PC,ENISET
136136 013703 157110 MOV EN0IND,R3 ; Now, select regular buffer
136142 012601 MOV (SP)+,R1 ; GET RESIDUAL WORD COUNT IN R1
136144 005726 TST (SP)+ ; CHECK FOR OVERRUN OR COLLISION
136146 100003 BPL 2$ ; IF PL THEN GOOD PACKET RECIEVED
136150 005237 157120 INC EN0ER2 ; INCREMENT COUNT OF INPUT PERM ERRS
136154 000446 BR 3$ ; AND RESTART THE I/O
136156 005237 157122 2$: INC EN0PKI ; INCREMENT COUNT OF INPUT PACKETS
136162 052701 177000 BIS #177000,R1 ; INTERFACE REQUIRES THIS CROCK
.IF DF PCKASB
136166 016300 157112 MOV EN0BUF(R3),R0
136172 162700 000010 SUB #QENMSG,R0 ; Pretend we're a queue block
CALL ENPCHK ; Check to see if it got clobbered later.
136176 004737 136406 JSR PC,ENPCHK
.ENDC; DF PCKASB
136202 062701 000454 ADD #EN0BSZ,R1 ; CONVERT NOW TO POSITIVE W.C.
136206 001431 BEQ 3$ ; HAH, A ZERO LENGTH PACKET...
;Code to discard quickly any broadcast packets, under control of ENBCCF, set by 10.
136210 016300 157112 MOV EN0BUF(R3),R0 ; address of packet buffer
136214 116002 000001 MOVB 1(R0),R2 ; destination host
136220 001004 BNE 20$ ; just if not broadcast packet
136222 032737 000001 157106 BIT #1,ENBCCF ; see if broadcast packets should be ignored
136230 001420 BEQ 3$ ; jump to ignore
136232 006301 20$: ASL R1 ; MAKE R1 INTO A BYTE COUNT
136234 062701 000010 ADD #QENMSG,R1 ; ADD SPACE FOR BLOCK HDR
CALL QGET ; GO GET THE BUFFER
136240 004737 137140 JSR PC,QGET
136244 103003 BCC 21$ ; C = 0, BUFFER OK, MOVE THE PACKET
136246 005237 157116 INC EN0MEM ; INCREMENT COUNT OF LOST PACKETS (NO MEM)
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 321
QMP11 PAL[KL,SYS] Page 4.1 DSKDMP BOOTSTRAP LOADING SERVICE, JBR 23-MAY-76 - LDBOOT
136252 000407 BR 3$ ; AND RESTART I/O
21$: CALL ENICOP ; MOVE FROM READ BUFFER TO CORE BLOCK
136254 004737 136344 JSR PC,ENICOP
.IIF DF PCKASB, CALL ENPCHK ; CHECK CHECKSUM
136260 004737 136406 JSR PC,ENPCHK
QUEUE TO10Q ; QUEUE THE PACKET TO THE 10
136264 004537 137634 JSR R5,$QUEUE
136270 157072 .WORD TO10Q
;bug check: (;;;'ed t to make space. We haven't see any recently. TVR/14-Jan-81
;;; MOVB QENMSG+1(R0),R2 ; "first" byte of message = destination host number
;;; BEQ 3$ ; zero is broadcast packet.
;;; CMPB R2,ENIHAD ; compare to our host address
;;; BEQ 3$ ;
;;; PMSG <\?EN BAD ADDR\>
;;;
3$:
.IF DF PCKASB
136272 016300 157112 MOV EN0BUF(R3),R0 ; Fill buffer with fixed pattern to see how
136276 012701 000454 MOV #EN0BSZ,R1 ; hardware is losing...
136302 012720 052525 66$: MOV #52525,(R0)+
136306 077103 SOB R1,66$
.ENDC; DF PCKASB
136310 012637 157110 MOV (SP)+,EN0IND ; Next buffer now becomes current
136314 012603 MOV (SP)+,R3 ; Restore borrowed register
RETURN
136316 000207 RTS PC
;Setup for Ethernet input. R3 is index of input buffer
136320 016337 157112 160032 ENISET: MOV EN0BUF(R3),ENIWA ; SET BUFFER ADDRESS FOR EN DEVICE
136326 012737 777324 160030 MOV #-EN0BSZ,ENIWC ; AND SET WORD COUNT FOR XFER
136334 012737 000101 160034 MOV #101,ENICSR ; SET GO AND INTERRUPT ENABLE
RETURN ; GO RETURN FROM INTERRUPT
136342 000207 RTS PC
;enter here with R0 = Address of core block. R1=size of our request
; R3 = Index of Ethernet input buffer
ENICOP: SAVVR ; SAVE REGS R0-R2
136344 004237 140376 JSR R2,$SAVVR
136350 012760 000003 000004 MOV #QENPKT,QREQ(R0); SET Packet type in block
136356 162701 000010 SUB #QENMSG,R1 ; REDUCE COUNT TO PACKET SIZE (BYTES)
136362 006201 ASR R1 ; AND CHANGE TO WORD COUNT
136364 010160 000006 MOV R1,QENWC(R0) ; STORE PACKET WORD COUNT
136370 062700 000010 ADD #QENMSG,R0 ; POINT R0 TO DATA AREA
136374 016302 157112 MOV EN0BUF(R3),R2 ; SET LOCATION OF FIRST WORD
136400 012220 5$: MOV (R2)+,(R0)+ ; MOVE WORD FROM READ BUFF TO CORE BLOCK
136402 077102 SOB R1,5$ ; LOOP
RETURN ; RETURN FROM MOVE
136404 000207 RTS PC
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 322
QMP11 PAL[KL,SYS] Page 4.2 DSKDMP BOOTSTRAP LOADING SERVICE, JBR 23-MAY-76 - LDBOOT
.IF DF PCKASB ;If checksumming PUPs
;Bugtrap: Check PUP checksum of Ethernet packet
;R0 points to queue entry. (Subtract QENMSG if you have a bare packet)
ENPCHK: SAVVR ;For paranoia's sake
136406 004237 140376 JSR R2,$SAVVR
136412 062700 000010 ADD #QENMSG,R0
136416 026027 000002 001000 CMP 2(R0),#1000 ;PUP packet?
136424 001030 BNE 79$ ; No, forget it
136426 022020 CMP (R0)+,(R0)+ ;Skip two header words
136430 011001 MOV (R0),R1 ;Get size
136432 003424 BLE 78$ ; Bad size!
136434 020127 004000 CMP R1,#4000 ;Arbitrary upper limit on size (is this OK?)
136440 003021 BGT 78$
136442 005301 DEC R1 ;Round up, but exclude checksum
136444 006201 ASR R1 ;Convert to words
136446 005002 CLR R2 ;Initial checksum
136450 062002 71$: ADD (R0)+,R2 ;Add in an entry
136452 005502 ADC R2 ;End around carry
136454 006302 ASL R2 ;Cycle left (stupid PDP-11, ROL rotates carry)
136456 005502 ADC R2 ;Part of cycle left, really!
136460 077105 SOB R1,71$ ;Repeat for each word in message
136462 021027 177777 CMP (R0),#177777 ;If checksum is unspecified, all this was
136466 001407 BEQ 79$ ; for nothing
136470 020227 177777 CMP R2,#177777 ;Special fudge to checksum?
136474 001001 BNE 72$ ; No
136476 005002 CLR R2 ;Yes, 177777->0
136500 021002 72$: CMP (R0),R2 ;Check checksum
136502 001401 BEQ 79$ ;Good.
;We have a bad PUP packet.
136504 000400 78$: br 79$ ;;;FATAL ;Bitch and moan
;Return, good, bad, otherwise (like non-PUP packet)
79$: RETURN
136506 000207 RTS PC
.ENDC; DF PCKASB
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 323
QMP11 PAL[KL,SYS] Page 5 DSKDMP BOOTSTRAP LOADING SERVICE, JBR 23-MAY-76 - LDBOOT
; DTEINT, DTE10D Interrupt routines
; DTEINT - INTERRUPT ROUTINE ENTERED ON DTE INTERRUPT
;
;
DTEINT: CALL 1$ ; USE CALL FOR REGISTER SAVE
136510 004737 136516 JSR PC,1$
136514 000002 RTI ; RETURN FROM INT
1$: SAVRG ; SAVE REGS R3-R5
136516 004537 140352 JSR R5,$SAVRG
136522 017703 020626 MOV @.STDTE,R3 ; GET DTE STATUS IN REG 3
136526 032703 120000 BIT #TO10DN!TO10ER,R3 ; TO10 COMPLETION?
136532 001402 BEQ 2$ ; IF EQ NO
CALL DTE10D ; GO TO THE CHECK ROUTINE
136534 004737 136576 JSR PC,DTE10D
136540 032703 000202 2$: BIT #TO11DN!TO11ER,R3 ; TO11 COMPLETION?
136544 001402 BEQ 4$ ; IF EQ NO
CALL DTE11D ; GO TO THE CHECK ROUTINE
136546 004737 136650 JSR PC,DTE11D
136552 032703 004000 4$: BIT #TO11DB,R3 ; IS IT DOORBELL INTERRUPT?
136556 001406 BEQ 6$ ; IF EQ NO
136560 012737 000001 157136 MOV #1,T11DBF ; YES, SET SOFTWARE DOORBELL
136566 012777 002000 020560 MOV #INT11C,@.STDTE ; AND CLEAR DOORBEL INT
6$: RETURN ; RESTORE AND RTI
136574 000207 RTS PC
; DTE10D - ROUTINE ENTERED AT COMPLETION OF XFER TO 10
;
; Call with R3=Ending status.
; If error status is seen, we leave dead message in the Q for
; SND10 to restart. (really, there should be a retry count)
;
DTE10D: SAVVR ; SAVE REGS R0-R2
136576 004237 140376 JSR R2,$SAVVR
136602 012777 050000 020544 MOV #DON10C!ERR10C,@.STDTE ; RESET FLAGS IN DTE STATUS REG
136610 005037 157134 CLR DTEBSY ; CLEAR THE DTEBSY FLAG NOW.
136614 013700 157072 MOV TO10Q,R0 ; BUFFER ADDRESS.
136620 001412 BEQ 5$ ; Can't happen. BR if no message address.
136622 032703 020000 BIT #TO10ER,R3 ; WAS THIS AN ERROR RETURN?
136626 001007 BNE 5$ ; BR if error. Message remains in the Q.
136630 011037 157072 MOV (R0),TO10Q ; REMOVE THE BUFFER BLOCK FROM QUEUE
136634 001002 BNE 4$ ; NOT LAST ENTRY IN QUEUE
136636 005037 157074 CLR TO10Q+2 ; LAST ENTRY IN QUEUE, ZERO END POINTER
4$: CALL QGIVE ; GO RELEASE THE CORE BLOCK
136642 004737 137120 JSR PC,QGIVE
5$: RETURN ;
136646 000207 RTS PC
;
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 324
QMP11 PAL[KL,SYS] Page 6 DSKDMP BOOTSTRAP LOADING SERVICE, JBR 23-MAY-76 - LDBOOT
; DTE11D - COMPLETION OF TO11 TRANSFER FROM DTE
;
; ENTERED FROM DTEINT ROUTINE. R3 = DTE Status at Interrupt.
;
; In case of transfer error, sender has been notified in
; his ending status. Sender will retry from the top.
;
;
DTE11D: SAVVR ; SAVE REGS R0-R2
136650 004237 140376 JSR R2,$SAVVR
136654 012777 000101 020472 MOV #DON11C!ERR11C,@.STDTE ; Clear DONE and ERROR in DTE STATUS
136662 013700 157062 MOV FR10Q,R0 ; ADDRESS OF BUFFER BLOCK
136666 001416 BEQ 5$ ; Discard interrupt if no msg block
136670 005037 157062 CLR FR10Q ; CLEAR FROM DTE POINTER
136674 005002 CLR R2 ; If error, R2 = 0 for no-op
136676 032703 000002 BIT #TO11ER,R3 ; IS THE ERROR BIT ON TRANSFER SET
136702 001006 BNE 2$ ; If error, branch to call $DTNOP (R2 = 0)
; NOW LOOK AT THE REQUEST WORD AND SEE WHERE DATA IS MEANT TO GO
136704 016002 000004 MOV QREQ(R0),R2 ; GET THE REQUEST WORD IN R2
136710 006302 ASL R2 ; DOUBLE FOR WORD POINTER
136712 020227 000016 CMP R2,#REQMAX ; bounds test
136716 103012 BHIS T11MSE ; br if out of bounds
136720 004772 136726 2$: JSR PC,@REQLST(R2) ; NOW GO TO THE SUBROUTINE
5$: RETURN ;
136724 000207 RTS PC
;
;
136726 136766 REQLST: .WORD $DTNOP ;no-op discard the message
136730 136766 .WORD $ECHRY ;QECHRY - RESPONSE TO AN ECHO REQUEST
136732 136774 .WORD $11ECH ;QECHRQ - REQUEST FOR AN ECHO
136734 137012 .WORD $11ETH ;QENPKT - Request to send An EtherNet Packet
136736 137030 .WORD $11ADR ;QENADR - REQUEST FROM 10 FOR ETHERNET ADDRESS
136740 136766 .WORD $DTNOP ;eventually, dectape messages. now unimplemented
136742 137072 .WORD $ENBCC ;QENBCC - Request to control broadcast packets
000016 REQMAX==.-REQLST
T11MSE: PUSH R0 ;save msg block address
136746 016046 000004 MOV QREQ(R0),-(SP) ;save request type
PMSG <\T11MSE=>
136752 104025 $PMSG
136754 147256 $$CLIT
POP R0
136760 104035 PNTOCT ;PRINT Request type
136762 104031 PCRLF
POP R0 ;restore Msg addr & fall into $ECHRY
$DTNOP: ; no-op
$ECHRY: CALL QGIVE ; JUST FREE THE BLOCK
136766 004737 137120 JSR PC,QGIVE
RETURN ; AND RETURN
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 325
QMP11 PAL[KL,SYS] Page 6.1 DSKDMP BOOTSTRAP LOADING SERVICE, JBR 23-MAY-76 - LDBOOT
136772 000207 RTS PC
136774 012760 000001 000004 $11ECH: MOV #QECHRY,QREQ(R0) ; MAKE PACKET AN ECHO RESPONSE
QUEUE TO10Q ; AND QUEUE IT FOR 10
137002 004537 137634 JSR R5,$QUEUE
137006 157072 .WORD TO10Q
RETURN ;
137010 000207 RTS PC
$11ETH: QUEUE ENETQ ; QUEUE BUFFER BLOCK TO ETHERNET QUEUE
137012 004537 137634 JSR R5,$QUEUE
137016 157066 .WORD ENETQ
137020 103002 BCC 1$ ; BRANCH IF NOT FIRST (ONLY) ENTRY
CALL SNDEN ; OK, QUEUE IT FOR ETHERNET
137022 004737 136006 JSR PC,SNDEN
1$: RETURN
137026 000207 RTS PC
$11ADR: CALL QGIVE ; GO FREE THE QUEUE ENTRY NOW
137030 004737 137120 JSR PC,QGIVE
137034 012701 000010 MOV #QHDRSZ+2,R1 ; NOW WE WILL GET SHORT BLOCK
CALL QGET ; GO GET THE SHORT BLOCK
137040 004737 137140 JSR PC,QGET
137044 103411 BCS 1$ ; Can't get such a block! He'll ask again
137046 013760 157052 000006 MOV ENIHAD,QHDRSZ(R0) ; Store ethernet address.
137054 012760 000004 000004 MOV #QENADR,QREQ(R0) ; SET RESPONSE CODE FOR 10
QUEUE TO10Q ; QUEUE FOR 10
137062 004537 137634 JSR R5,$QUEUE
137066 157072 .WORD TO10Q
1$: RETURN ; AND RETURN
137070 000207 RTS PC
;Here to set Ethernet broadcast packet control word.
137072 013702 157106 $ENBCC: MOV ENBCCF,R2 ; get old control word to be returned
137076 016037 000006 157106 MOV QHDRSZ(R0),ENBCCF ; set new control word
137104 010260 000006 MOV R2,QHDRSZ(R0) ; put old control word in return packet
QUEUE TO10Q ; and queue for the 10
137110 004537 137634 JSR R5,$QUEUE
137114 157072 .WORD TO10Q
RETURN
137116 000207 RTS PC
137120 016001 000002 QGIVE: MOV QSIZ(R0),R1 ; GET PACKET SIZE IN R1
137124 010002 MOV R0,R2 ; MOV QUEUE ENTRY ADDRESS TO R2
137126 012700 157056 MOV #FREEQ,R0 ; AND ADDRESS OF FREEQ TO R0
CALL $RLCB ; RELEASE THE MEMORY
137132 004737 140032 JSR PC,$RLCB
RETURN
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 326
QMP11 PAL[KL,SYS] Page 6.2 DSKDMP BOOTSTRAP LOADING SERVICE, JBR 23-MAY-76 - LDBOOT
137136 000207 RTS PC
;QGET - Get a free-core block. Call with R1=Request size in bytes.
; Returns with Carry Set to signify no block available, or,
; Returns with Carry Clear, R0 = Block address. QSIZ(R0) and QCHN(R0) setup.
137140 012700 157056 QGET: MOV #FREEQ,R0 ; ADDRESS OF FREEQ LIST HEADER
CALL $RQCB ; ALLOCATE BLOCK
137144 004737 140156 JSR PC,$RQCB
137150 103405 BCS 1$ ; BR if there's no block available
137152 005060 000000 CLR QCHN(R0) ; CLEAR THE CHAIN WORD IN BLOCK
137156 010160 000002 MOV R1,QSIZ(R0) ; SET BUFFER SIZE IN CORE BLOCK
137162 000241 CLC ; RETURN CARRY CLEAR
1$: RETURN
137164 000207 RTS PC
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 327
QMP11 PAL[KL,SYS] Page 7 DSKDMP BOOTSTRAP LOADING SERVICE, JBR 23-MAY-76 - LDBOOT
; QMPCMD - ROUTINE CALLED FROM KLDCP WHEN 10 SENDS ITEM COUNT
;
; ENTERED WITH:
; R5 = 14 IN THE HIGH BYTE
;
QMPCMD: CALL $99
137166 004737 137176 JSR PC,$99
137172 000137 107526 JMP C10DON ; RETURN TO CONS11
$99: SAVVR ; SAVE REGS R0-R2
137176 004237 140376 JSR R2,$SAVVR
PUSH PS ; SAVE OLD PS
137206 012737 000340 177776 MOV #PR7,PS ; AND SET NON-INTERRUPTIBLE STATUS
137214 032777 007777 020114 BIT #7777,@.BC11 ; Is there a transfer already in progress?
137222 001034 BNE QMPCXT ; Yes, the '10 goofed. We'll just ignore it and
; let the current transfer finish.
; *** If the DTE is every real hung, we lose!
137224 013701 147616 MOV $ECMD+2,R1 ; WORD COUNT FROM CMD INCLUDES REQUEST
137230 006301 ASL R1 ; MAKE BYTE COUNT FOR CORE ALLOCATION
137232 062701 000004 ADD #QHDRSZ-2,R1 ; ADD ROOM FOR HEADER TO REQUEST SIZE
137236 010137 157054 MOV R1,QMPRQS ; save size of request in case we need QMPRTY
QMPRY1: CALL QGET ; REQUEST MEMORY
137242 004737 137140 JSR PC,QGET
137246 103422 BCS QMPCXT ; BR if there is no buffer available.
137250 005037 157054 CLR QMPRQS ; clear request size to avoid hassle in QMPRTY
137254 010037 157062 MOV R0,FR10Q ; SET HEADER ADDRESS IN FR10Q
137260 062700 000004 ADD #QHDRSZ-2,R0 ; READ REQUEST AND DATA TO QUEUE ENTRY
137264 010077 020052 MOV R0,@.T11AD ; SET BUFFER ADDRESS IN DTE REG
137270 162701 000004 SUB #QHDRSZ-2,R1 ; REDUCE COUNT FOR HEADER SIZE
137274 006201 ASR R1 ; MAKE WORD COUNT AGAIN FOR DTE XFER
137276 005401 NEG R1 ; MAKE TWO'S COMPLEMENT COUNT
137300 042701 170000 BIC #170000,R1 ; CLEAR HIGH BITS FROM COUNT
137304 052701 100000 BIS #INT10,R1 ; SET BIT TO INTERRUPT 10 WHEN DONE
137310 010177 020022 MOV R1,@.BC11 ; AND SET BYTE COUNT IN DTE REG
QMPCXT: POP PS ; RESTORE RUN PRIORITY
137320 000207 RTS PC
;
;If there was no buffer space available when the 10 made its request,
;the QMPCMD routine leaves QMPRQS set to the size of the request.
;QMPRTY is called from SND10, each time through the command loop.
QMPRTY: SAVVR
137322 004237 140376 JSR R2,$SAVVR
PUSH PS
137332 012737 000340 177776 MOV #PR7,PS ; AND SET NON-INTERRUPTIBLE STATUS
137340 013701 157054 MOV QMPRQS,R1
137344 001763 BEQ QMPCXT
137346 000735 BR QMPRY1
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 328
QMP11 PAL[KL,SYS] Page 8 DSKDMP BOOTSTRAP LOADING SERVICE, JBR 23-MAY-76 - LDBOOT
; SND10 - ROUTINE TO QUEUE BLOCK FOR XFER TO 10
;
; Called From Console Loop via JSR PC,SND10
; N.B. ROUTINE RUNS INTERRUPTABLE!!!
;
SND10: SAVVR ; SAVE REGS R0-R2
137350 004237 140376 JSR R2,$SAVVR
PUSH PS
137360 012737 000340 177776 MOV #PR7,PS ; set us as non-interuptable.
137366 013700 157072 MOV TO10Q,R0 ; Get address of next message to 10
137372 001446 BEQ 3$ ; Nothing in queue. Return
137374 005737 157134 TST DTEBSY ; IS THE DTE CURRENTLY BUSY?
137400 001403 BEQ 5$ ; BR if not busy
137402 005237 157132 INC DTEBCT ; increment the busy count
137406 001040 BNE 3$ ; if it counts out, restart pending xfer
137410 005037 157132 5$: CLR DTEBCT ; reset the busy count
137414 016001 000002 MOV QSIZ(R0),R1 ; GET THE BYTE COUNT FROM BLOCK COUNTER
137420 162701 000004 SUB #QHDRSZ-2,R1 ; SUBTRACT THE HEADER SIZE (INCLUDE REQUEST)
137424 003002 BGT 6$ ; try not to be rediculous!
137426 012701 000002 MOV #2,R1 ; change a negative or zero count to positive.
137432 006201 6$: ASR R1 ; CONVERT TO WORD COUNT FOR DTE XFER
137434 010137 157100 MOV R1,COUN10 ; SET COUNT FOR DEPOSIT IN 10 MEMORY
137440 005401 NEG R1 ; MAKE TWO'S COMPLEMENT FOR XFER
137442 062700 000004 ADD #QHDRSZ-2,R0 ; POINT TO REQUEST WORD PRECEDING DATA
137446 010077 017666 MOV R0,@.T10AD ; SET WORD ADDRESS IN DTE REGISTER
137452 010177 017656 MOV R1,@.BC10 ; SET WORD COUNT IN DTE REGISTER
137456 104055 SETFLG ; SET DTEBSY FLAG SO WE DON'T TRY TO WRITE MORE
137460 157134 DTEBSY ; UNTIL WE ARE FINISHED WITH THIS ONE
137462 011637 177776 MOV (SP),PS ; Restore interrupts. We're done with Q & DTE
137466 012737 004000 147444 .IIF NE EPTREL, MOV #XEPT!PRTOFF,$TADSP ; SET ADDR MODE FOR NXT EXDEP
137474 104106 DPOST ; EMT CALL TO DEPOSIT IN 10 MEMORY
137476 000460 $DTQMP ; ADDRESS IN 10 MEMORY
137500 157100 COUN10 ; ADDRESS OF PARAMETER STRING
137502 012777 000400 017644 MOV #TO10DB,@.STDTE ; RING THE 10'S CHIMES
3$: POP PS
CALL QMPRTY ; See if need a retry of QGET for a TO11 command
137514 004737 137322 JSR PC,QMPRTY
RETURN ; AND RETURN
137520 000207 RTS PC
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 329
QMP11 PAL[KL,SYS] Page 9 DSKDMP BOOTSTRAP LOADING SERVICE, JBR 23-MAY-76 - LDBOOT
; QINI - ROUTINE TO INITIALIZE QUEUE STRUCTURES
003000 FREEAD==3000
020000 FREESZ==20000
023000 FREEND==FREEAD+FREESZ ;of course.
; Called by
; JSR PC,QINI ;Clear all queues. Initialize free memory pool.
QINI: SAVVR ; SAVE R0-R2
137522 004237 140376 JSR R2,$SAVVR
137526 012700 157056 MOV #FREEQ,R0 ; ADDRESS OF FREEQ LISTHEAD
137532 012701 003000 MOV #FREEAD,R1 ; ADDRESS OF free pool beginning
137536 010137 157112 MOV R1,EN0BUF ; RESERVE FIRST OF FREE CORE
137542 062701 001130 ADD #EN0BSZ*2,R1 ; FOR ETHERNET INPUT BUFFER(S)
137546 010137 157114 MOV R1,EN0BUF+2 ; MUST DOUBLE BUFFER ETHERNET INPUT
137552 062701 001130 ADD #EN0BSZ*2,R1
137556 010120 MOV R1,(R0)+ ; Set address of free block in list head (FREEQ)
137560 005010 CLR (R0) ; CLEAR SECOND WORD (Looks like a zero size blk)
137562 005021 CLR (R1)+ ; FREEQ point to a single block. (no link out)
137564 012711 020000 MOV #FREESZ,(R1) ; set size of the single free block.
137570 162711 002260 SUB #EN0BSZ*4,(R1) ; adjust size to account for EN buffers.
QCLR FR10Q ; CLEAR THE FR10Q
137574 004537 137620 JSR R5,$QCLR
137600 157062 .WORD FR10Q
QCLR TO10Q ; CLEAR THE TO10Q
137602 004537 137620 JSR R5,$QCLR
137606 157072 .WORD TO10Q
QCLR ENETQ ; CLEAR THE ETHERNET QUEUE
137610 004537 137620 JSR R5,$QCLR
137614 157066 .WORD ENETQ
.IF DF FSCASB
CLR WUSED ; Initialize bugtrap counts
CLR NGETS
CLR NGIVES
MOV #1,BFREE ; One BIG block
.ENDC;DF FSCASB
RETURN ;
137616 000207 RTS PC
; $QCLR - QUEUE RESET ROUTINE
;
; CALLED AS: JSR R5,$QCLR
; .WORD QPB
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 330
QMP11 PAL[KL,SYS] Page 9.1 DSKDMP BOOTSTRAP LOADING SERVICE, JBR 23-MAY-76 - LDBOOT
; WHERE QPB IS QUEUE PARAMETER BLOCK
;
$QCLR: PUSH R0 ; SAVE R0
137622 012500 MOV (R5)+,R0 ; GET QUEUE PARAMETER BLOCK ADDRESS
137624 005020 CLR (R0)+ ; CLEAR POINTER TO OLDEST ENTRY
137626 005020 CLR (R0)+ ; AND POINTER TO NEWEST ENTRY
POP R0 ; RESTORE R0
137632 000205 RTS R5
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 331
QMP11 PAL[KL,SYS] Page 10 DSKDMP BOOTSTRAP LOADING SERVICE, JBR 23-MAY-76 - LDBOOT
; $QUEUE - GENERALIZED QUEUE ROUTINE
;
; CALLED AS: JSR R5,$QUEUE
; .WORD QPB
; Where
; QPB = the address of the Queue Parameter Block, and
; R0 = the Address of the new Queue item.
;
; The new Queue item is:
; .WORD CHAIN POINTER
; .WORD BYTE COUNT (INCLUDES QHDRSZ BYTES FOR HEADER)
; .WORD REQUEST IDENTIFIER
; .BYTES DATA
;
; and the Queue Parameter Block is
; .WORD POINTER TO OLDEST ENTRY IN QUEUE
; .WORD POINTER TO NEWEST ENTRY IN QUEUE
;
; Routine returns with Carry set if you have just placed
; the first item in an empty queue.
;
$QUEUE: PUSH R2 ; SAVE R2 IN STACK
137636 012502 MOV (R5)+,R2 ; ADDRESS OF QUEUE POINTER BLOCK TO R2
137640 005010 CLR (R0) ; CLEAR CHAIN WORD IN NEW ENTRY
137642 005712 TST (R2) ; IS QUEUE EMPTY
137644 001004 BNE 1$ ; IF NE NO, QUEUE IS NOT EMPTY
137646 010022 MOV R0,(R2)+ ; YES, EMPTY - SET ENTRY ADDRESS
137650 010022 MOV R0,(R2)+ ; AND SET NEWEST ENTRY POINTER
137652 000261 SEC ; SET CARRY, FIRST AND ONLY ENTRY IN QUEUE
137654 000405 BR 2$ ; NOW RETURN
137656 010072 000002 1$: MOV R0,@2(R2) ; CHAIN ENTRY TO CURRENT NEWEST ENTRY
137662 010062 000002 MOV R0,2(R2) ; AND MAKE IT NEWEST ENTRY
137666 000241 CLC ; CLEAR CARRY, NOT ONLY ENTRY IN QUEUE
2$: POP R2 ; RESTORE R2
137672 000205 RTS R5 ; RETURN VIA R5
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 332
QMP11 PAL[KL,SYS] Page 11 DSKDMP BOOTSTRAP LOADING SERVICE, JBR 23-MAY-76 - LDBOOT
; QMPINI - ROUTINE TO INITIALIZE INTERRUPT ADDRESSES ETC.
;
; CALLED AS: JSR PC,QMPINI
;
QMPINI: SAVAL ; SAVE REGS R0-R5
137674 004737 140310 JSR PC,$SAVAL
PUSH PS ; SAVE CALLING PRIORITY
137704 012702 000340 MOV #PR7,R2 ; GET PRIORITY SEVEN IN R2
137710 010237 177776 MOV R2,PS ; SET PRIORITY SEVEN NOW
137714 012701 000774 MOV #774,R1 ; GET ADDRESS OF DTE INTERRUPT VECTOR
137720 012721 136510 MOV #DTEINT,(R1)+ ; SET DTE INTERRUPT VECTOR ADDRESS
137724 010221 MOV R2,(R1)+ ; AND INTERRUPT PRIORITY SEVEN
137726 012777 037776 017364 MOV #37776,@.DELAY ; INITIAL DELAY COUNT
137734 052777 000040 017412 BIS #INTRON,@.STDTE ; SET INTERRUPTS ON
;
137742 012701 000400 MOV #400,R1 ; GET ETHERNET INTERRUPT VECTOR ADDRESS
137746 012721 135674 MOV #ENOINT,(R1)+ ; SET INTERRUPT DISPACH ADDR IN VECTOR
137752 010221 MOV R2,(R1)+ ; AND INTERRUPT PRIORITY SEVEN
137754 012721 136074 MOV #ENIINT,(R1)+ ; SET INTERRUPT DISPACH ADDR IN VECTOR
137760 010221 MOV R2,(R1)+ ; AND INTERRUPT PRIORITY SEVEN
137762 012721 135674 MOV #ENOINT,(R1)+ ; SET INTERRUPT DISPATCH ADDR IN VECTOR
137766 010221 MOV R2,(R1)+ ; AND SET INTERRUPT PRIORITY SEVEN
137770 013737 160036 157052 MOV ENIADR,ENIHAD ; GET THE ETHERNET ADDRESS
137776 105137 157052 COMB ENIHAD ; COMPLEMENT FOR READING
;
CALL QINI ; INITIALIZE MEMORY AND QUEUES
140002 004737 137522 JSR PC,QINI
;
;JJW 11/85 changed output delay code. No longer use delay array
;; MOV #EN0DLY,R0 ; ADDRESS OF DELAY ARRAY FOR EN0
;; MOV #10,R1 ; MAXIMUM NUMBER OF RETRYS
;; MOV #200,R2 ; MAXIMUM DELAY
;;1$: MOV R2,(R0)+ ; PUT DELAY IN TABLE
;; ASR R2 ; SHIFT IT RIGHT
;; SOB R1,1$ ; LOOP AND FILL TABLE
;
140006 005003 CLR R3 ; Select first buffer
140010 010337 157110 MOV R3,EN0IND
CALL ENISET ; Setup to read first packet
140014 004737 136320 JSR PC,ENISET
140020 005037 157106 CLR ENBCCF ; DISABLE PASSING EN BROADCAST PACKETS TO 10
;
POP PS ; RESTORE ENTRY PRIORITY
RETURN
140030 000207 RTS PC
;
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 333
QMP11 PAL[KL,SYS] Page 12 DSKDMP BOOTSTRAP LOADING SERVICE, JBR 23-MAY-76 - LDBOOT
; RQCB/RLCB: first fit dynamic core allocation routines
;
; data structures
;
; Free block list header:
;
; freehd: .word next ; pointer to next free block or zero
; .word 0 ; always zero (looks like a too-small block)
;
; Free block:
;
; freebk: .word next ; pointer to next free block or zero
; .word size ; size of block in bytes
;
; Used block: User pointer to the free block addresses "usedbk" below.
;
; .word size ; size of block in bytes (and even number)
; usedbk: .word data ; Size-2 bytes of user data are permitted
;
; The free block list is ordered by the core address of the blocks
; themselves. This is so block agglomeration can be performed with
; little overhead.
;
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 334
QMP11 PAL[KL,SYS] Page 13 DSKDMP BOOTSTRAP LOADING SERVICE, JBR 23-MAY-76 - LDBOOT
; $RLCB - ReLease Core Block
;
; Call this subroutine to release a core block to the free list.
; The free list is searched until the proper slot is found. The Block
; is merged into the free list. If the block being released is adjacent
; to other free blocks, then those blocks are agglomerated and the new block
; is merged into the free list.
;
; INPUTS:
; R0 = ADDRESS OF FREE BLOCK LIST HEAD
; R2 = ADDRESS OF BLOCK TO RELEASE.
;
; OUTPUTS:
; NONE
;
$RLCB: SAVRG ; SAVE NON-VOLATILE REGISTERS
140032 004537 140352 JSR R5,$SAVRG
140036 014201 MOV -(R2),R1 ; Point to start of block. Get size
140040 003445 BLE 99$ ; A non-positive size is unlikely and undesirable
140042 032701 000001 BIT #1,R1 ; An odd size is likewise undesirable
140046 001042 BNE 99$ ; So, we bomb out.
140050 022702 003000 CMP #FREEAD,R2 ; Make sure free block is in bounds
140054 101037 BHI 99$ ; BR if out of bounds.
140056 010103 MOV R1,R3 ; Copy length of this block to R3
140060 060203 ADD R2,R3 ; compute end of this block
140062 022703 023000 CMP #FREEND,R3 ; compare to top of free storage
140066 103432 BLO 99$ ; BR if out of bounds.
140070 011003 1$: MOV (R0),R3 ; GET ADDRESS OF NEXT FREE BLOCK
140072 001404 BEQ 2$ ; IF EQ THEN END OF CHAIN
140074 020203 CMP R2,R3 ; COMPARE ADDRESSES
140076 103402 BLO 2$ ; IF LO THEN WE FOUND SLOT
140100 010300 MOV R3,R0 ; SET NEW PREVIOUS ADDRESS
140102 000772 BR 1$ ; GO AGAIN
;here, R0 is address of previous block. R3 is address of next block.
140104 010312 2$: MOV R3,(R2) ; ASSUME NO AGGLOMERATION. Link out of new blk.
140106 010204 MOV R2,R4 ; CALCULATE ADDRESS OF NEXT BLOCK
140110 060104 ADD R1,R4 ; ADD IN BLOCK SIZE
.IF DF FSCASB
SUB R1,WUSED ; Bugtrap: Decrement number of words in use
INC BFREE ; Assuming no agglomeration
.ENDC;DF FSCASB
140112 020304 CMP R3,R4 ; COMPARE BLOCK ADDRESSES
140114 001002 BNE 3$ ; IF NE DO NOT MERGE BLOCKS
140116 012312 MOV (R3)+,(R2) ; SET NEW FORWARD LINK
140120 061301 ADD (R3),R1 ; ADJUST SIZE
.IIF DF FSCASB, DEC BFREE ; We merged one here.
140122 010210 3$: MOV R2,(R0) ; ASSUME NO AGGLOMERATION
140124 010004 MOV R0,R4 ; CALCULATE ADDRESS OF NEXT BLOCK
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 335
QMP11 PAL[KL,SYS] Page 13.1 DSKDMP BOOTSTRAP LOADING SERVICE, JBR 23-MAY-76 - LDBOOT
140126 066004 000002 ADD 2(R0),R4 ; ADD IN BLOCK SIZE
140132 020204 CMP R2,R4 ; COMPARE ADDRESSES
140134 001004 BNE 4$ ; IF NE DO NOT MERGE
140136 011210 MOV (R2),(R0) ; SET NEW FORWARD LINK
140140 066001 000002 ADD 2(R0),R1 ; ADJUST SIZE
140144 010002 MOV R0,R2 ; SET NEW BASE ADDRESS OF BLOCK
.IIF DF FSCASB, DEC BFREE ; We merged one here.
140146 010162 000002 4$: MOV R1,2(R2) ; SET SIZE OF BLOCK
.IIF DF FSCASB, INC NGIVES ; Count instances
RETURN ;
140152 000207 RTS PC
140154 104000 99$: FATAL
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 336
QMP11 PAL[KL,SYS] Page 14 DSKDMP BOOTSTRAP LOADING SERVICE, JBR 23-MAY-76 - LDBOOT
; $RQCB - REQUEST CORE BLOCK
;
; Call this subroutine to request a core block from the free list.
; The selection is made on the first fit basis.
;
; INPUTS:
; R0 = ADDRESS OF FREE BLOCK LIST HEAD
; R1 = Requested size of block in bytes.
;
; The size of the request will be increased by 2 and rounded up to
; be an even number of bytes.
;
; OUTPUTS:
; C=1 IF REQUEST CANNOT BE FULFILLED
; C=0 IF REQUEST IS SATISFIED. R0 = ADDRESS OF REQUESTED CORE BLOCK.
; R1 = Requested size rounded up to even #
;
$RQCB: SAVRG ; SAVE NONVOLATILE REGISTERS
140156 004537 140352 JSR R5,$SAVRG
140162 005701 TST R1 ; make sure request is positive.
140164 003450 BLE 99$ ; can't have idiots around here.
140166 062701 000003 ADD #3,R1 ; Add 2 and round up to next word boundary
140172 042701 000001 BIC #1,R1 ; Clear excess odd bit
;R0 = address of "previous", R3 = address of "current"
140176 011003 2$: MOV (R0),R3 ; Get address of the next free block.
140200 001440 BEQ 9$ ; BR if end of the list. No block available.
140202 020163 000002 CMP R1,2(R3) ; Is the block big enough?
140206 101402 BLOS 6$ ; BR if the block is large enough.
140210 010300 MOV R3,R0 ; Advance R0 to point to this block
140212 000771 BR 2$ ; and go look at the next block.
;Here R3 = address of a desirable block. R0 is the predecessor
6$: PUSH R1 ;Save user's size request (+2)
140216 016302 000002 MOV 2(R3),R2 ;Get the size of the block we found
140222 160102 SUB R1,R2 ;Reduce it by the size of this request
140224 022702 000020 CMP #20,R2 ;Is there enough left to be worth splitting?
140230 103004 BHIS 7$ ;BR if fragment too small to split.
140232 010263 000002 MOV R2,2(R3) ;Store size of remainder.
140236 060203 ADD R2,R3 ;Calculate address of piece to return now
140240 000403 BR 8$ ;R3=address to return. R1=Size.
140242 011310 7$: MOV (R3),(R0) ;Here for no split. LINK PREVIOUS TO NEXT
140244 016301 000002 MOV 2(R3),R1 ;this is the actual size of this block
.IIF DF FSCASB, DEC BFREE ;One less thing on free list
140250 010300 8$: MOV R3,R0 ;Copy address block to R0
140252 010120 MOV R1,(R0)+ ;Store size of the block in the block.
140254 022703 003000 CMP #FREEAD,R3 ; Make sure free block is in bounds
140260 101012 BHI 99$ ; BR if out of bounds.
140262 060103 ADD R1,R3 ; compute end of this block
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 337
QMP11 PAL[KL,SYS] Page 14.1 DSKDMP BOOTSTRAP LOADING SERVICE, JBR 23-MAY-76 - LDBOOT
140264 022703 023000 CMP #FREEND,R3 ; compare to top of free storage
140270 103406 BLO 99$ ; BR if out of bounds.
.IF DF FSCASB
ADD R1,WUSED ;Bugtrap: Update number of words used
INC NGETS ; Increment number of requests
.ENDC; DF FSCASB
POP R1 ;User's request size (+2)
140274 005741 TST -(R1) ;return in R1 the apparent block size.
140276 000241 CLC ; CLEAR CARRY
RETURN
140300 000207 RTS PC
140302 000261 9$: SEC ; SET CARRY
RETURN ;
140304 000207 RTS PC
140306 104000 99$: FATAL
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 338
QMP11 PAL[KL,SYS] Page 15 DSKDMP BOOTSTRAP LOADING SERVICE, JBR 23-MAY-76 - LDBOOT
; $SAVAL, $SAVVR, $SAVRG Register Save and Restore Co-routines
;
; $SAVAL - SAVE AND RESTORE R0-R5
;
; THIS MODULE IS ENTERED VIA A "JSR PC,$SAVAL" TO SAVE AND
; SUBSEQUENTLY RESTORE REGISTERS R0 THROUGH R5. AFTER STORING THE
; REGISTER CONTENST ON THE STACK A CO-ROUTINE CALL IS MADE TO
; THE CALLING ROUTINE. A SUBSEQUENT "RTS PC" CAUSES THIS
; SUBROUTINE TO RESTORE ALL REGISTERS AND EXIT VIA AN "RTS PC".
;
; ALL REGISTER CONTENTS ARE PRESERVED.
;
$SAVAL: PUSH R4
PUSH R3
PUSH R2
PUSH R1
PUSH R0 ; SAVE R4-R0
140322 016646 000012 MOV 12(SP),-(SP) ; COPY RETURN ADDR
140326 010566 000014 MOV R5,14(SP) ; SAVE R5
CALL @(SP)+ ; CALL THE CALLER
140332 004736 JSR PC,@(SP)+
POP R0
POP R1
POP R2
POP R3
POP R4
POP R5 ; RESTORE R0-R5
RETURN ; AND RETURN
140350 000207 RTS PC
;
; $SAVRG - SAVE AND RESTORE NONVOLATILE REGISTERS, 3,4,5
;
; CALLED AS: JSR R5,$SAVRG
;
$SAVRG: PUSH R4
PUSH R3 ; SAVE R4,R3
PUSH R5 ; PUT RETURN ADDRESS ON STACK
140360 016605 000006 MOV 6(SP),R5 ; RETRIEVE REAL R5
CALL @(SP)+ ; CALL THE CALLER
140364 004736 JSR PC,@(SP)+
POP R3
POP R4
POP R5 ; RESTORE R5
RETURN
140374 000207 RTS PC
; $SAVVR - SAVE AND RESTORE VOLATILE REGS - R0-R2
;
; CALLED AS: JSR R2,$SAVVR
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 339
QMP11 PAL[KL,SYS] Page 15.1 DSKDMP BOOTSTRAP LOADING SERVICE, JBR 23-MAY-76 - LDBOOT
;
$SAVVR: PUSH R1
PUSH R0 ; SAVE R1 AND R0
PUSH R2 ; SAVE RETURN ADDRESS
140404 016602 000006 MOV 6(SP),R2 ; RESTORE R2
CALL @(SP)+ ; CALL THE CALLER
140410 004736 JSR PC,@(SP)+
POP R0
POP R1
POP R2 ; RESTORE REGS
RETURN ;
140420 000207 RTS PC
;
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 340
KLDCP PAL[KL,SYS] Page 5.8 DSKDMP BOOTSTRAP LOADING SERVICE, JBR 23-MAY-76 - LDBOOT
;File loading and command functions
.INSRT APT11.PAL
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 341
APT11 PALII[KL,SYS] Page 1 DSKDMP BOOTSTRAP LOADING SERVICE, JBR 23-MAY-76 - LDBOOT
COMMENT ⊗ VALID 00014 PAGES
C REC PAGE DESCRIPTION
C00001 00001
C00003 00002 .SBTTL APT10 PDP-11 PROCESS, 13-AUG-75
C00005 00003 DAHLPD=.
C00007 00004 ACTBCK: PMSG <?CKSUM>
C00008 00005 .SBTTL COMMUNICATIONS ROUTINES
C00010 00006 7$: TTICHR GET CONTROL SEQUENCE CHARACTER
C00011 00007 CMERTB: CMER1
C00012 00008 $COMSND:MOV #COUTBF,R5
C00014 00009 $CMRTRY:MOV #COUTBF-4,R0 SETUP MESSAGE POINTER
C00016 00010 $COMLIN:MOV #CINBF-4,R1 START BUFFER ADDRESS
C00018 00011 3$: INC R1 NULL TO END BUFFER
C00020 00012 44$: TST R0 DID CHECKSUM COMPUTE TO 0 ?
C00021 00013 $COMENQ:COMCLR CLEAR COMMUNICATIONS
C00023 00014 $COMCLR:CLR ENQFLG
C00025 ENDMK
C⊗;
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 342
APT11 PALII[KL,SYS] Page 2 APT10 PDP-11 PROCESS, 13-AUG-75
.SBTTL APT10 PDP-11 PROCESS, 13-AUG-75
.IF DF MONASB
ACTFIL: CMP #5,LDCNTL ;LOADING ".BIN" ?
BNE 1$
MOV #1,LDCNTL ;YES, ACT10 CONVERTS TO ".A11"
1$: COMENQ ;REQUEST APT10 SERVICE
MOV #$INBUF,R0
COMCMD ;SEND COMMAND TO REMOTE
BCS 2$ ;C-BIT SET, FILE NOT FOUND
CLR ARETRY ;CLEAR RETRY COUNTER
BR ACTLD1 ;GO TO LOAD PROCESS
2$: JMP $NONXF
.ENDC
ACTLD2:
.IF DF MONASB
TST DEVTYP
BMI 1$ ;ACT10
.ENDC
140422 000137 131146 JMP LLD2 ;DECTAPE/RP04
.IF DF MONASB
1$: COMACK ;ACK PREVIOUS LINE
BCS ACTEOF ;C-BIT SET, EOF
CLR ARETRY ;CLEAR RETRY COUNTER
ACTLD1: INC DEVLC ;COUNT LINE
MOV DEVLC,SWR ;DISPLAY
TST LDCNTL ;DOING A "HELP" ?
BPL 1$ ;NO
.ENDC
140426 DAHLP=.
140426 005737 151140 TST DIAFLG ;DOING DIAMON
140432 001407 BEQ 30$ ;NO
140434 005737 150744 TST DEVLC ;YES, FIRST LINE ?
140440 001002 BNE 31$ ;NO
140442 000137 112226 JMP DIAFND ;YES, DIAMON FILE FOUND
140446 000137 112262 31$: JMP DIARNL ;DIAMON READ NEW LINE
140452 005737 147644 30$: TST IFILEF ;DOING AN INDIRECT FILE ?
140456 001402 BEQ 4$
140460 000137 140670 JMP IFILEP ;YES, STORE INPUT
140464 104055 4$: SETFLG
140466 150742 HLPPNT ;NORMAL BACKSLASHES
140470 012700 150520 MOV #$INBUF,R0 ;YES, PRINT INPUT LINE
.IF DF MONASB
TST DEVTYP
BPL 41$
MOV #CINBF,R0
.ENDC
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 343
APT11 PALII[KL,SYS] Page 2.1 APT10 PDP-11 PROCESS, 13-AUG-75
140474 104024 41$: PNTAL
140476 005037 150742 CLR HLPPNT
140502 000747 BR ACTLD2 ;REPEAT TILL "EOT"
140504 000137 131304 1$: JMP LDPROC ;GO TO LOAD PROCESS
.LIF DF MONASB
ACTEOF: COMCLR
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 344
APT11 PALII[KL,SYS] Page 3 APT10 PDP-11 PROCESS, 13-AUG-75
140510 DAHLPD=.
140510 005737 151140 TST DIAFLG ;DOING DIAMON ?
140514 001402 BEQ 10$ ;NO
140516 000137 112362 JMP DIAEOF ;YES, SEND DIAMON END OF FILE
140522 005737 147644 10$: TST IFILEF ;INDIRECT/DOUBLE INDIRECT ?
140526 001002 BNE 21$ ;YES
140530 104031 PCRLF ;NO, JUST HELP
140532 000422 BR 23$ ;BACK TO CONSOLE
140534 005737 147640 21$: TST JFILEF ;DOUBLE INDIRECT ?
140540 100012 BPL 22$ ;NO
140542 105737 147640 TSTB JFILEF ;PRESENT JUST INDIRECT ?
140546 001407 BEQ 22$ ;YES
140550 105037 147640 CLRB JFILEF ;SET DONE WITH READING "J"
140554 012737 010000 147636 MOV #TOUTBF+5000,JFINP ;SET "J" POINTER TO BEGINNING
140562 000137 100106 JMP CONSL ;START RUNNING
140566 012737 003000 147642 22$: MOV #TOUTBF,IFINP ;SET POINTER TO BEGINNING
140574 105037 147644 CLRB IFILEF
140600 000137 100014 23$: JMP $CONSL ;GO PROCESS INDIRECT FILE
ACTDON:
.IF DF MONASB
COMACK ;ACK TRANSFER BLOCK
BCC 3$
.ENDC
140604 DADONE=.
140604 005737 150746 TST SRTFLG ;SELF START ?
140610 001402 BEQ 1$
140612 000137 113216 JMP $$GO ;YES
140616 000137 100014 1$: JMP $CONSL ;NO
3$: PMSG <?EOF,ERR>
140622 104025 $PMSG
140624 147267 $$CLIT
140626 000137 100004 $$C2: JMP $CNTLC
ACTLDC: PMSG <?LOAD CHR>
140632 104025 $PMSG
140634 147300 $$CLIT
140636 000405 BR ACTERR
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 345
APT11 PALII[KL,SYS] Page 4 APT10 PDP-11 PROCESS, 13-AUG-75
ACTBCK: PMSG <?CKSUM>
140640 104025 $PMSG
140642 147312 $$CLIT
140644 000402 BR ACTERR
ACTLDF: PMSG <?FORMAT>
140646 104025 $PMSG
140650 147321 $$CLIT
ACTERR: PMSG < ERR: LOAD LINE >
140652 104025 $PMSG
140654 147331 $$CLIT
140656 013700 150744 MOV DEVLC,R0
140662 104037 PNTDEC ;PRINT LOAD LINE NUMBER
140664 104031 PCRLF
.IF DF MONASB
TST DEVTYP
BPL 2$ ;DECTAPE/RP04
INC ARETRY
CMP #4,ARETRY ;REACHED RETRY LIMIT ?
BEQ 1$ ;YES
COMNAK ;NO, NAK MESSAGE & TRY AGAIN
DEC DEVLC ;DECREMENT LINE COUNT
JMP ACTLD1
1$: PMSG <CAN'T LOAD>
.ENDC
140666 000757 2$: BR $$C2
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 346
APT11 PALII[KL,SYS] Page 5 COMMUNICATIONS ROUTINES
.SBTTL COMMUNICATIONS ROUTINES
.IF DF MONASB
$COMACK:INC MSGNBR ;COUNT MESSAGE
$$CMACK:MOV #ACKMSG,R5 ;MESSAGE ACKNOWLEDGE
BR $COMCX
$COMNAK:MOV #NAKMSG,R5 ;MESSAGE NEGATIVE ACKNOWLEDGE
BR $COMCX
$COMCMD:CLR R5 ;MESSAGE COMMAND
$COMCX: MOV #3,R4 ;RETRY 3 TIMES
1$: TST R5
BNE 2$
COMSND ;COMMAND SEND
BR 3$
2$: MOV R5,R0
COMCTL ;CONTROL SEQUENCE SEND
3$: COMLIN ;GET REPLY
BCS 5$ ;ERROR
BPL 7$ ;CONTROL SEQUENCE
MOV #136,R3 ;NORMAL MESSAGE
BIT #1,MSGNBR ;ODD OR EVEN MESSAGE NUMBER
BEQ 4$
MOV #041,R3
4$: CMP R3,COMNBR ;CORRECT MESSAGE NUMBER ?
BNE $$CMACK ;NO, MUST BE REPEAT
CLR R0
41$: EXIT ;NEW MESSAGE READY FOR PROCESS
5$: DEC R4 ;EXCEEDED RETRY LIMIT ?
BNE 6$ ;NO, TRY AGAIN
JMP $COMERR ;YES, REPORT ERROR & ABORT
6$: TST R5
BNE 61$ ;CONTROL REPEAT
CMP #-5,R0 ;RECIEVED CHECKSUM ERROR ?
BEQ 61$ ;YES, SEND NAK
COMRTRY ;COMMAND RETRY
BR 3$
61$: MOV #NAKMSG,R5
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 347
APT11 PALII[KL,SYS] Page 5.1 COMMUNICATIONS ROUTINES
BR 2$
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 348
APT11 PALII[KL,SYS] Page 6 COMMUNICATIONS ROUTINES
7$: TTICHR ;GET CONTROL SEQUENCE CHARACTER
CMPB #'A,R0
BEQ 41$ ;A, ACKNOWLEDGE
CMPB #'Z,R0
BEQ 8$ ;Z, END OF TRANSMISSION
CMPB #'N,R0
BNE 71$
MOV #-7,R0 ;N, NEGATIVE ACKNOWLEDGE
BR 5$
71$: MOV #-10,R0 ;UNKNOWN RESPONSE
BR 5$
8$: EXITERR ;END OF FILE
$COMERR:PUSH R0
PMSG <?COMM ERR >
POP R0
NEG R0
MOV R0,R1
PNTOCS
PNTCI
",
DEC R1
SL R1,1
MOV CMERTB(R1),R0
PNTAL
JMP $CNTLC
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 349
APT11 PALII[KL,SYS] Page 7 COMMUNICATIONS ROUTINES
CMERTB: CMER1
CMER2
CMER3
CMER4
CMER5
CMER6
CMER7
CMER10
CMER1: .ASCIZ %NO RESPONSE%
CMER2: .ASCIZ %LONG LINE%
CMER3: .ASCIZ %MSG NBR%
CMER4: .ASCIZ %NO CR%
CMER5: .ASCIZ %MSG CKSUM%
CMER6: .ASCIZ %FORMAT%
CMER7: .ASCIZ %NAK%
CMER10: .ASCIZ %UNKNOWN%
.EVEN
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 350
APT11 PALII[KL,SYS] Page 8 COMMUNICATIONS ROUTINES
$COMSND:MOV #COUTBF,R5
CLR R3
1$: CMPB (R0),#CR ;REACHED CR YET ?
BEQ 2$ ;YES
CMPB (R0),#ALTMOD ;OR ALTMODE ?
BEQ 12$ ;YES, SUBSTITUTE CR
TSTB (R0) ;REACHED NULL BYTE ?
BNE 11$
MOV #-6,R0 ;YES, INCORRECT MESSAGE FORMAT
BR $COMERR
11$: MOVB (R0),R2
ADD R2,R3 ;ACCUMULATE CHECKSUM
MOVB (R0)+,(R5)+ ;TRANSFER MSG TO OUTPUT BUFFER
BR 1$
12$: MOV #ALTMOD,(R5)+
BR 22$
2$: MOVB (R0)+,(R5)+ ;PUT CR IN OUTPUT
22$: CLRB (R5) ;FOLLOW WITH NULL
MOV #COUTBF-4,R5 ;SETUP MESSAGE START
MOVB #136,(R5)
BIT #1,MSGNBR ;SET UP MESSAGE NUMBER CHAR
BEQ 21$
MOVB #041,(R5)
21$: INC R5
NEG R3 ;NEGATE CHECKSUM
MOV R3,R0
SWAB R0
BIC #177400,R0
SHIFTR
4
JSR PC,COMASC
MOVB R0,(R5)+ ;INSERT 1ST CHECK CHAR
MOV R3,R0
SHIFTR
6
JSR PC,COMASC
MOVB R0,(R5)+ ;INSERT 2ND CHECK CHAR
MOV R3,R0
JSR PC,COMASC
MOVB R0,(R5)+ ;INSERT 3RD CHECK CHAR
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 351
APT11 PALII[KL,SYS] Page 9 COMMUNICATIONS ROUTINES
$CMRTRY:MOV #COUTBF-4,R0 ;SETUP MESSAGE POINTER
$COMCTL:TSTB @$CMTKS ;ANY OLD CHARS ?
BPL 1$
MOVB @$CMTKB,$TTYIN ;YES, GET GET OF IT
BR $COMCTL
1$: TSTB @$CMTPS ;WAIT TILL OUTPUT IS READY
BPL $COMCTL
MOV #2,R1 ;SEND 2 SYNC CHARACTERS
2$: MOVB #SYN,@$CMTPB
3$: TSTB @$CMTPS
BPL 3$
DEC R1
BNE 2$
4$: MOVB (R0)+,R1 ;GET MESSAGE CHAR
BEQ 6$ ;IF NULL, DONE
MOVB R1,@$CMTPB ;SEND CHAR
5$: TSTB @$CMTPS ;WAIT TILL OUTPUT READY
BPL 5$
BR 4$ ;SEND TILL NULL
6$: EXIT ;COMPLETED
COMASC: BIC #177700,R0 ;KEEP 6 BITS
CMP R0,#74 ;LEAVE 75,76,77 ALONE
BGT 1$
BIS #100,R0 ;SET BIT 7 FOR ASCIIZE
1$: RTS PC
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 352
APT11 PALII[KL,SYS] Page 10 COMMUNICATIONS ROUTINES
$COMLIN:MOV #CINBF-4,R1 ;START BUFFER ADDRESS
CLR $TTYTIM ;CLEAR TIMEOUT
CLR R5 ;CLEAR IN SYNC FLAG
1$: JSR PC,C10COP ;PERFORM CLOCK OPERATIONS
CMP $TTYTIM,#<20.*60.> ;20 SECS
BGT 90$ ;TIMED OUT
TSTB @$CMTKS ;COMM IN FLAG SET ?
BMI 2$ ;YES
JSR PC,$PTTYC ;ANY OPERATOR INTERRUPT ?
BR 1$ ;NO
2$: MOVB @$CMTKB,(R1) ;MOVE CHAR TO BUFFER
BICB #200,(R1)
TSTB (R1)
BEQ 1$ ;IGNORE NULLS
CMPB (R1),#SYN ;SYNC CHAR ?
BEQ 21$ ;YES
TST R5 ;RECIEVED SYNC YET ?
BEQ 1$ ;NO, DUMP GARBAGE CHARS
CMPB (R1),#ALTMOD
BEQ 3$ ;ALTMODE, CONTROL SEQUENCE
CMPB (R1),#'$ ;DOLLAR, PDP-10 SENDS THIS FOR ALTMODE
BNE 22$
CMP R1,#CINBF ;LEGAL ONLY IF IN CONTROL SEQUENCE
BLT 3$
22$: CMPB (R1),#LF
BEQ 4$ ;LF, MESSAGE SEGMENT
INC R1
CMP R1,#CINBF+140.
BLE 1$ ;STILL ROOM
BR 91$ ;NO, LINE TOO LONG
21$: MOV #-1,R5 ;SYNC, SET IN SYNC FLAG
BR 1$
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 353
APT11 PALII[KL,SYS] Page 11 COMMUNICATIONS ROUTINES
3$: INC R1 ;NULL TO END BUFFER
CLRB (R1)
MOV R1,$INPTR ;SETUP INPUT POINTERS
MOV #CINBF-4,$INPTC
EXIT ;CONTROL SEQUENCE RETURN
4$: INC R1
CLRB (R1)
MOV R1,$INPTR ;SETUP INPUT POINTERS
MOV #CINBF-4,R1
CMPB #041,(R1)
BEQ 41$
CMPB #136,(R1)
BEQ 41$
BR 92$ ;MESSAGE NUMBER INCORRECT
41$: MOVB (R1)+,COMNBR ;SAVE MESSAGE NUMBER
CLR R0 ;SETUP FOR MESSAGE CHECKSUM
MOV #3,R5 ;CHARS 2,3,4 ARE CHECKSUM
42$: SL R0,6
MOVB (R1)+,R4 ;GET 1ST CHECK CHAR
BIC #100,R4 ;CLEAR ASCIIZE BIT
BIS R4,R0 ;INSERT IN 16 BIT CHECKSUM
DEC R5
BGT 42$ ;DO 3 CHARS
43$: CMPB (R1),#CR ;REACHED EOL ?
BEQ 44$ ;YES
TSTB (R1) ;PAST EOL WITHOUT CR ?
BEQ 93$ ;YES, NO CR ERROR
MOVB (R1)+,R3
ADD R3,R0 ;ACCUMULATE CHECKSUM
BR 43$
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 354
APT11 PALII[KL,SYS] Page 12 COMMUNICATIONS ROUTINES
44$: TST R0 ;DID CHECKSUM COMPUTE TO 0 ?
BNE 94$ ;NO, CHECKSUM ERROR
MOV #CINBF,$INPTC ;MESSAGE SEGMENT OK
BIS #NBIT,14(SP) ;SET NORMAL MESSAGE INDICATOR
EXIT
90$: MOV #-1,R0 ;NO RESPONSE ERROR
BR 99$
91$: MOV #-2,R0 ;LINE TOO LONG ERROR
BR 99$
92$: CMPB #'?,(R1) ;IS MESSAGE NUMBER QUESTION MARK ?
BEQ COMQ ;YES, HOST ERROR
MOV #-3,R0 ;MESSAGE NUMBER CHAR ERROR
BR 99$
93$: MOV #-4,R0 ;NO CARRIAGE RETURN ERROR
BR 99$
94$: MOV #-5,R0 ;MESSAGE CHECKSUM ERROR
99$: EXITERR ;ERROR EXIT, C-BIT SET, CODE IN R0
COMQ: $PMSG ;PRINT ERROR REPLY
CINBF-4
JMP $CNTLC
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 355
APT11 PALII[KL,SYS] Page 13 COMMUNICATIONS ROUTINES
$COMENQ:COMCLR ;CLEAR COMMUNICATIONS
SETFLG
ENQFLG ;SET APT10 IN PROGRESS
MOV #3,R4
10$: CLR MSGNBR ;INITIALIZE MESSAGE NUMBER
MOV #ENQMSG,R0
COMCTL ;SEND "ENQ" MESSAGE
COMLIN ;WAIT FOR REPLY
BCS 1$ ;ERROR, CODE IN R0
BMI 3$ ;NORMAL MESSAGE REPLY ?
TTICHR
CMPB #'A,R0 ;A, ACKNOWLEDGE
BNE 1$
EXIT ;ACKED, GO AHEAD
1$: TST R0 ;IS REPLY CODE NEGATIVE ?
BMI 4$ ;YES, COMLIN ERROR
CMPB #'Z,R0 ;IS REPLY EOT, WAIT ?
BNE 3$ ;NO
CLR $TTYTIM ;YES, WAIT 10 SECONDS
2$: JSR PC,$PTTYC
JSR PC,C10COP
CMP $TTYTIM,#<10.*60.>
BLE 2$
BR $COMENQ ;THEN TRY AGAIN
3$: PMSG <?APT10 ENQ>
JMP $CNTLC
4$: DEC R4
BNE 10$ ;RETRY
JMP $COMERR ;COMMUNICATIONS ERROR
$COMEOT:MOV #EOTMSG,R0
COMCTL
EXIT
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 356
APT11 PALII[KL,SYS] Page 14 COMMUNICATIONS ROUTINES
$COMCLR:CLR ENQFLG
MOV #CANMSG,R0
COMCTL
MOV #100000,R1
1$: TSTB @$CMTKS ;ANY INPUT IN PROGRESS ?
BPL 2$
MOVB @$CMTKB,R0 ;IF SO, GET RID OF IT
BR 1$
2$: DEC R1
BNE 1$ ;A LITTLE DELAY
EXIT
ENQMSG: .BYTE 'E,33,0
ACKMSG: .BYTE 'A,33,0
NAKMSG: .BYTE 'N,33,0
CANMSG: .BYTE 'C,33,0
EOTMSG: .BYTE 'Z,33,0
.EVEN
.ENDC ;.IF DF MONASB
140670 012700 150520 IFILEP: MOV #$INBUF,R0 ;SETUP POINTERS
.IF DF MONASB
TST DEVTYP
BPL 10$
MOV #CINBF,R0
.ENDC
140674 013701 147642 10$: MOV IFINP,R1
140700 112021 1$: MOVB (R0)+,(R1)+ ;TRANSFER CHARS TO STORAGE
140702 001376 BNE 1$ ;TILL NULL
140704 105011 CLRB (R1) ;THEN STORE 2ND NULL
140706 010137 147642 MOV R1,IFINP ;RESAVE POINTER
140712 020127 012600 CMP R1,#TOUTBF+10000-200
140716 003402 BLE 2$ ;EXCEEDED BUFFER ROOM ?
140720 000137 131760 JMP $LINERR ;YES
140724 000137 140422 2$: JMP ACTLD2 ;REPEAT TILL EOF
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 357
KLDCP PAL[KL,SYS] Page 5.9 COMMUNICATIONS ROUTINES
;PDP-11 Core Dump to A11 file
;.INSRT CDMP11.PAL
;KL10 diagnostic functions
.INSRT BR11.PAL
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 358
BR11 PALII[KL,SYS] Page 1 COMMUNICATIONS ROUTINES
COMMENT ⊗ VALID 00025 PAGES
C REC PAGE DESCRIPTION
C00001 00001
C00003 00002 .SBTTL DTE20 INITIALIZATION ROUTINE, 9-SEPTEMBER-75
C00005 00003 .SBTTL ROUTINE TO READ THE EBUS VIA THE DTE20
C00007 00004 .SBTTL ROUTINE TO EXECUTE DIAG FUNCTION VIA DTE20
C00009 00005 DIAGNOSTIC FUNCTION EXECUTE, FAST
C00011 00006 .SBTTL ROUTINE TO WRITE 36 BITS TO THE EBUS
C00014 00007 .SBTTL ROUTINE TO DO EBUS READ, THEN STORE DATA SOMEPLACE
C00016 00008 .SBTTL MASTER RESET ROUTINE
C00021 00009 .SBTTL CONTROL RAM ADDRESS ROUTINE
C00023 00010 .SBTTL WCRAM ROUTINE
C00026 00011 $STRCH: MOV WREADY,R0 GET UNSPACED DATA
C00028 00012 .SBTTL RCRAM ROUTINE
C00031 00013 15$: MOVB WREADY+1,-(R3) ENDING UP
C00033 00014 $SQASH: MOV WREADY,R1 GET STRETCHED BITS 8-19
C00035 00015 .SBTTL MICNUL & MICFIL C-RAM ROUTINES
C00036 00016 MICFIL, C-RAM FILL WITH ONES ROUTINE
C00037 00017 .SBTTL WDRAM ROUTINE
C00038 00018 .SBTTL RDRAM ROUTINE
C00040 00019 $DRAMAD: MOV #DDRAM,R3 GET ADDRESS OF EBUS DATA
C00042 00020 WRITE THE IR
C00044 00021 .SBTTL M-BOX CLOCK BURST ROUTINE
C00046 00022 .SBTTL LOAD AR ROUTINE
C00049 00023 .SBTTL MBOX PHASE ROUTINE
C00052 00024 .SBTTL VMA, VMAH, PC & ADDRESS BREAK ROUTINE
C00054 00025 MOV #WREADY+5,R1 NOW MOVE READ DATA
C00056 ENDMK
C⊗;
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 359
BR11 PALII[KL,SYS] Page 2 DTE20 INITIALIZATION ROUTINE, 9-SEPTEMBER-75
.SBTTL DTE20 INITIALIZATION ROUTINE, 9-SEPTEMBER-75
140730 005737 157316 DTEINI: TST $ONETM ;HAVE WE GONE THRU THIS ONCE BEFORE ?
140734 001013 BNE 3$ ;BR IF YES
140736 012700 174400 MOV #DTEADR,R0
140742 012702 000020 11$: MOV #16.,R2
140746 012701 157320 MOV #.DELAY,R1
140752 010021 1$: MOV R0,(R1)+ ;SETUP DTE20 INDIRECT ADDRESS POINTERS
140754 005200 INC R0
140756 005200 INC R0
140760 005302 DEC R2
140762 001373 BNE 1$
140764 104055 3$: SETFLG
140766 157316 $ONETM
140770 012700 141040 MOV #$STJRS,R0 ;SETUP "JRST" START INSTRUCTION
140774 012701 157222 MOV #$$STJRS,R1 ;MUST BE IN STORAGE BECAUSE
141000 012021 MOV (R0)+,(R1)+ ;THE JRST ADR IS VARIABLE
141002 012021 MOV (R0)+,(R1)+
141004 012021 MOV (R0)+,(R1)+
141006 012700 141032 MOV #$PAGDFL,R0 ;SETUP "DATAO PAG,0" DEFAULT ARGUMENT
141012 012701 157254 MOV #PAGDFL,R1 ;MUST BE IN STORAGE BECAUSE THE CURRENT
141016 012021 MOV (R0)+,(R1)+ ;AC BLOCK SELECTION IS VARIABLE
141020 012021 MOV (R0)+,(R1)+
141022 012021 MOV (R0)+,(R1)+
141024 005000 CLR R0
141026 104147 SETMPH ;SET M-BOX PHASE
141030 000207 RTS PC
$PAGDFL:WD36 7000,0040,0000 ;LD'S & NO ST ACC
141040 .EVEN
$STJRS: I10 JRST,0,,0
000000 ADH=0
000000 ADL=0
.IF NB 0
.IRPC AD1,0
.IIF GE <ADL-10000>,ADH=ADL/10000
ADL=10*<ADL&7777>+AD1
.ENDM
770000 .IIF GE <ADL-10000>,ADH=ADL/10000
000000 ADL=10*<ADL&7777>+0
.ENDC
.IIF B 0,AC=0
000000 .IIF NB 0,AC=0
000000 .IIF B ,I=0
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 360
BR11 PALII[KL,SYS] Page 2.1 DTE20 INITIALIZATION ROUTINE, 9-SEPTEMBER-75
.IIF NB ,I=
000000 .IIF B ,XR=0
.IIF NB ,XR=
141046 .EVEN
141046 013700 157320 $DTEBAS:MOV .DELAY,R0
EXIT
141052 000137 124062 JMP $EXIT
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 361
BR11 PALII[KL,SYS] Page 3 ROUTINE TO READ THE EBUS VIA THE DTE20
.SBTTL ROUTINE TO READ THE EBUS VIA THE DTE20
;THIS IS THE ROUTINE TO READ 36 BITS FROM THE EBUS
;THE CALL REQUIRES THE DIAGNOSTIC FUNCTION TO BE EXECUTED
;TO BE IN REGISTER R0,RIGHT JUSTIFIED.
;CALLING SEQUENCE:
; CALL-1: MOV #DIAG FUNCTION,R0
; CALL: DFRD
141056 017700 006572 $DFRDT: MOV @$EMADR,R0 ;PICKUP TRAILING PARAMETER
141062 062766 000002 000012 ADD #2,12(SP) ;SKIP RETURN
141070 004737 141376 $DFRD: JSR PC,$KLCK1 ;CHECK KL10 CLOCK RUNNING
141074 006300 ASL R0 ;MAKE DIAG FCN IN CORRECT BITS
141076 000300 SWAB R0 ;MAKE DIAG FCN IN CORRECT BYTE
141100 052700 000211 BIS #DCOMST!DFUNC!DIKL10,R0 ;SET CORRECT DTE20 BITS
141104 010077 016240 MOV R0,@.DIAG1 ;EXECUTE THE FUNCTION
$DFXX: WFZERO DCOMST ;WAIT FOR DONE FLAG
141110 012746 004704 MOV #2500.,-(SP) ;SET TIMEOUT CNT
141114 032777 000001 016226 91$: BIT #DCOMST,@.DIAG1 ;TEST BIT
141122 001407 BEQ 92$ ;LEAVE IF BIT ZERO(OK)
141124 005316 DEC (SP) ;DECREMENT CNT
141126 001372 BNE 91$ ;CONTINUE LOOP
141130 005737 147752 TST RPTFLG ;OTHERWISE TIME OUT
141134 001002 BNE 92$
141136 004137 141154 JSR R1,$DFTIM
141142 005726 92$: TST (SP)+ ;RESET STACK & CONTINUE
141144 004737 141450 JSR PC,$KLCK2 ;RESTART CLOCK IF NECESSARY
EXIT
141150 000137 124062 JMP $EXIT
141154 005037 147710 $DFTIM: CLR TENRUN
PMSG <?DF TIMEOUT AT >
141160 104025 $PMSG
141162 147352 $$CLIT
141164 010100 MOV R1,R0
141166 104035 PNTOCT
PMSG <PC = >
141170 104025 $PMSG
141172 147372 $$CLIT
141174 016600 000016 MOV 16(SP),R0 ;GET ADDRESS OF CALL
141200 005740 $DFTMX: TST -(R0)
141202 104035 PNTOCT
141204 000137 100004 JMP $CNTLC
$ECTIM: PMSG <?CLK>
141210 104025 $PMSG
141212 147400 $$CLIT
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 362
BR11 PALII[KL,SYS] Page 3.1 ROUTINE TO READ THE EBUS VIA THE DTE20
$DFTM1: PMSG < ERR AT >
141214 104025 $PMSG
141216 147405 $$CLIT
141220 010100 MOV R1,R0
141222 000766 BR $DFTMX
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 363
BR11 PALII[KL,SYS] Page 4 ROUTINE TO EXECUTE DIAG FUNCTION VIA DTE20
.SBTTL ROUTINE TO EXECUTE DIAG FUNCTION VIA DTE20
;THIS IS THE ROUTINE TO EXECUTE A NON-DATA
;DIAGNOSTIC FUNCTION. THE CALL REQUIRES THE
;DIAGNOSTIC FUNCTION TO BE EXECUTED TO BE IN
;REGISTER R0,RIGHT JUSTIFIED
;CALLING SEQUENCE:
; CALL-1: MOV #DIAG FUNCTION,R0
; CALL: DFXCT
;DIAGNOSTIC FUNCTION EXECUTE, TRAILING PARAMETER
141224 017700 006424 $DXCTT: MOV @$EMADR,R0 ;PICKUP TRAILING PARAMETER
141230 062766 000002 000012 ADD #2,12(SP) ;SKIP RETURN
141236 000406 BR $DFXCT
;DIAGNOSTIC FUNCTION EXECUTE, SINGLE STEP KL10 CLOCK
141240 005037 147474 $DFSCLK:CLR KLCLKR ;CLEAR KL10 CLOCK RUNNING
141244 012777 002201 016076 MOV #DCOMST!DFUNC!<SSCLK*1000>,@.DIAG1
141252 000422 BR $$DFX1
;DIAGNOSTIC FUNCTION EXECUTE
141254 020027 000001 $DFXCT: CMP R0,#001 ;KL10 CLOCK START FUNCTION ?
141260 001406 BEQ 1$ ;YES
141262 020027 000007 CMP R0,#007 ;ANY OTHER CLOCK CONTROL FUNCTION ?
141266 003006 BGT 2$ ;NO
141270 005037 147474 CLR KLCLKR ;YES, CLEAR LOGICAL CLOCK RUN FLAG
141274 000403 BR 2$
141276 012737 777777 147474 1$: MOV #-1,KLCLKR ;CLOCK START, SET LOGICAL CLOCK RUN FLAG
141304 006300 2$: ASL R0 ;MAKE DIAG FCN IN CORRECT BITS
141306 000300 SWAB R0 ;MAKE DIAG FCN IN CORRECT BYTE
141310 052700 000201 BIS #DCOMST!DFUNC,R0 ;SET CORRECT DTE20 BITS
141314 010077 016030 MOV R0,@.DIAG1 ;EXECUTE THE FUNCTION
$$DFX1: WFZERO DCOMST ;WAIT FOR DONE
141320 012746 004704 MOV #2500.,-(SP) ;SET TIMEOUT CNT
141324 032777 000001 016016 91$: BIT #DCOMST,@.DIAG1 ;TEST BIT
141332 001407 BEQ 92$ ;LEAVE IF BIT ZERO(OK)
141334 005316 DEC (SP) ;DECREMENT CNT
141336 001372 BNE 91$ ;CONTINUE LOOP
141340 005737 147752 TST RPTFLG ;OTHERWISE TIME OUT
141344 001002 BNE 92$
141346 004137 141154 JSR R1,$DFTIM
141352 005726 92$: TST (SP)+ ;RESET STACK & CONTINUE
EXIT ;RETURN
141354 000137 124062 JMP $EXIT
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 364
BR11 PALII[KL,SYS] Page 5 ROUTINE TO EXECUTE DIAG FUNCTION VIA DTE20
;DIAGNOSTIC FUNCTION EXECUTE, FAST
141360 006300 $DFXFST:ASL R0 ;DIAG FUNCTION TO CORRECT BITS
141362 000300 SWAB R0
141364 052700 000201 BIS #DCOMST!DFUNC,R0
141370 010077 015754 MOV R0,@.DIAG1 ;EXECUTE THE FUNCTION
141374 000406 BR $$DFXDN
;KL10 CLOCK RUNNING CONTROLS
141376 005737 147474 $KLCK1: TST KLCLKR ;KL10 CLOCK RUNNING ?
141402 001421 BEQ $KLCK4 ;NO
141404 012777 000201 015736 MOV #DCOMST!DFUNC!<STPCLK*1000>,@.DIAG1
$$DFXDN:
$KLCK3: WFZERO DCOMST
141412 012746 004704 MOV #2500.,-(SP) ;SET TIMEOUT CNT
141416 032777 000001 015724 91$: BIT #DCOMST,@.DIAG1 ;TEST BIT
141424 001407 BEQ 92$ ;LEAVE IF BIT ZERO(OK)
141426 005316 DEC (SP) ;DECREMENT CNT
141430 001372 BNE 91$ ;CONTINUE LOOP
141432 005737 147752 TST RPTFLG ;OTHERWISE TIME OUT
141436 001002 BNE 92$
141440 004137 141154 JSR R1,$DFTIM
141444 005726 92$: TST (SP)+ ;RESET STACK & CONTINUE
141446 000207 $KLCK4: RTS PC
141450 005737 147474 $KLCK2: TST KLCLKR ;WAS CLOCK RUNNING ?
141454 001774 BEQ $KLCK4 ;NO
141456 012777 001201 015664 MOV #DCOMST!DFUNC!<STRCLK*1000>,@.DIAG1
141464 000752 BR $KLCK3
141466 010000 FFDEP: DEP ;DTE20 DEPOSIT/EXAM BIT
;DIAGNOSTIC FUNCTION, WRITE IR
141470 104120 $DFWIR: DFWRT ;THE LOAD AR FUNCTION IS ALREADY SETUP
141472 012777 014201 015650 MOV #DCOMST!DFUNC!<IRLOAD*1000>,@.DIAG1
141500 004737 141412 JSR PC,$$DFXDN ;STROBE DATA FROM AD TO IR
EXIT
141504 000137 124062 JMP $EXIT
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 365
BR11 PALII[KL,SYS] Page 6 ROUTINE TO WRITE 36 BITS TO THE EBUS
.SBTTL ROUTINE TO WRITE 36 BITS TO THE EBUS
;THIS IS THE ROUTINE TO WRITE 36 BITS TO THE EBUS
;THE ROUTINE REQUIRES THAT THE ADDRESS OF THE DATA
;TO BE WRITTEN IS IN REGISTER R1. THE DIAGNOSTIC
;FUNCTION WHICH DOES THE WRITE MUST BE RIGHT
;JUSTIFIED IN REGISTER R0.THE DATA TO BE WRITTEN MUST
;BE IN 5 CONSECUTIVE BYTES AS FOLLOWS:
; .BYTE EBUS BITS 28-35
; .BYTE EBUS BITS 20-27
; .BYTE EBUS BITS 12-19
; .BYTE EBUS BITS 04-11
; .BYTE EBUS BITS 00-03
;CALLING SEQUENCE:
; CALL-2: MOV #ADDR,R1
; CALL-1: MOV #DIAG FCN,R0
; CALL: DFWRT
141510 004737 141376 $DFWRT: JSR PC,$KLCK1 ;KL10 CLOCK RUNNING ?
PUSH R1 ;SAVE DESTINATION FOR POSTERITY
141516 032701 000001 BIT #1,R1 ;DATA ON WORD BOUNDRY ?
141522 001457 BEQ 2$ ;YES
141524 012705 147566 MOV #XXDAT,R5
141530 112125 MOVB (R1)+,(R5)+ ;PUT BITS 28-35 INTO CORE WORD
141532 112125 MOVB (R1)+,(R5)+ ;PUT BITS 20-27 INTO CORE
141534 014577 015562 MOV -(R5),@.DAT3 ;PUT BITS 20-35 INTO DTE20
141540 112125 MOVB (R1)+,(R5)+ ;PUT BITS 12-19 INTO CORE WORD
141542 112125 MOVB (R1)+,(R5)+ ;PUT BITS 4-11 INTO CORE WORD
141544 014577 015554 MOV -(R5),@.DAT2 ;PUT BITS 4-19 INTO DTE20
141550 112115 MOVB (R1)+,(R5) ;PUT BITS 0-3 INTO CORE WORD
141552 042715 177760 BIC #177760,(R5) ;OFF TRASH
141556 011577 015544 MOV (R5),@.DAT1 ;BITS 0-3 INTO DTE20
141562 012777 000014 015560 1$: MOV #DIKL10!DSEND,@.DIAG1 ;SET BIT TO DIAGNOSE KL10
141570 013777 141466 015532 MOV FFDEP,@.TENA1 ;SET DEPOSIT BIT OF DTE20
141576 013777 141466 015526 MOV FFDEP,@.TENA2 ;DO A PSEUDO DEPOSIT
WFONE DEXDON ;WAIT FOR A FLAG
141604 012746 004704 MOV #2500.,-(SP) ;SET TIMEOUT CNT
141610 032777 000004 015536 93$: BIT #DEXDON,@.STDTE ;TEST BIT
141616 001007 BNE 94$ ;LEAVE IF NOW A ONE(OK)
141620 005316 DEC (SP) ;DECREMENT CNT
141622 001372 BNE 93$ ;CONTINUE LOOP
141624 005737 147752 TST RPTFLG ;OTHERWISE TIME OUT
141630 001002 BNE 94$
141632 004137 141154 JSR R1,$DFTIM
141636 005726 94$: TST (SP)+ ;RESET STACK
141640 006300 ASL R0 ;GET DIAG FCN IN BIT POSITION
141642 000300 SWAB R0 ;GET DIAG FCN IN BYTE POSITION
141644 052700 000215 BIS #DCOMST!DSEND!DIKL10!DFUNC,R0 ;SET DTE20 BITS
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 366
BR11 PALII[KL,SYS] Page 6.1 ROUTINE TO WRITE 36 BITS TO THE EBUS
141650 010077 015474 MOV R0,@.DIAG1 ;EXECUTE THE DIAGNOSTIC FUNCTION
POP R0 ;RESTORE WHERE GOT DATA
141656 000137 141110 JMP $DFXX ;WAIT FOR DONE & EXIT
141662 012177 015434 2$: MOV (R1)+,@.DAT3 ;BITS 20-35
141666 012177 015432 MOV (R1)+,@.DAT2 ;BITS 4-19
141672 011177 015430 MOV (R1),@.DAT1 ;BITS 0-3
141676 000731 BR 1$
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 367
BR11 PALII[KL,SYS] Page 7 ROUTINE TO DO EBUS READ, THEN STORE DATA SOMEPLACE
.SBTTL ROUTINE TO DO EBUS READ, THEN STORE DATA SOMEPLACE
;ENTER THIS ROUTINE WITH R0 CONTAINING DIAGNOSTIC FUNCTION TO EXECUTE
;AND R1 CONTAINING ADDRESS OF BUFFER WHERE DATA SHOULD BE PLACED
141700 104116 $DFRDMV:DFRD ;GO READ KL10 DATA
PUSH R1 ;SAVE DESTINATION
141704 013700 157322 MOV .DAT3,R0 ;GET ADDRESS OF DTE20 REG
141710 112021 MOVB (R0)+,(R1)+ ;DATA FROM DTE TO CORE
141712 112021 MOVB (R0)+,(R1)+ ;DATA FROM DTE TO CORE
141714 112021 MOVB (R0)+,(R1)+ ;DATA FROM DTE TO CORE
141716 112021 MOVB (R0)+,(R1)+ ;DATA FROM DTE TO CORE
141720 112021 MOVB (R0)+,(R1)+ ;DATA FROM DTE TO CORE
POP R0 ;RESTORE REG R1
EXIT
141724 000137 124062 JMP $EXIT
;DIAGNOSTIC FUNCTION WRITE, TRAILING PARAMETER
141730 013705 147654 $DWRTT: MOV $EMADR,R5
141734 012501 MOV (R5)+,R1 ;DATA ADDRESS TO R1
141736 011500 MOV (R5),R0 ;DIAG FUNCTION TO R0
141740 062766 000004 000012 ADD #4,12(SP) ;RETURN OVER TRAILING PARAMETERS
141746 000660 BR $DFWRT
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 368
BR11 PALII[KL,SYS] Page 8 MASTER RESET ROUTINE
.SBTTL MASTER RESET ROUTINE
;MASTER RESET DIAGNOSTIC FUNCTION LIST
141750 000 LLIST: .BYTE STPCLK ;STOP CLOCK
141751 007 .BYTE SETMR ;SET MASTER RESET
141752 001 .BYTE STRCLK ;START CLOCK
141753 042 .BYTE LDBRR ;LOAD BURST REGISTER RIGHT
141754 043 .BYTE LDBRL ;LOAD BURST REGISTER LEFT
141755 045 .BYTE LDDIS ;LOAD CLOCK DISTRIBUTION REGISTER
141756 046 .BYTE LDCHK1 ;LOAD PARITY CHECK REGISTER
141757 047 .BYTE LDCHK2 ;LOAD EBOX INTERNAL CHECK REGISTER
141760 070 .BYTE LDCHAN ;INITIALIZE CHANNELS
141761 000 .BYTE STPCLK ;STOP CLOCK
000012 LLISTL==.-LLIST ;BUT THE LAST THREE ARE SPECIAL
141762 067 .BYTE ENIOJA ;SET IR DECODE TO KL10 MODE
141763 076 .BYTE 76 ;D.F. TO CONTROL EBUS REG
141764 071 .BYTE LDMBXA ;LOAD MEMORY TO CACHE SELECTOR
141766 .EVEN
;THIS IS A ROUTINE TO DO A MASTER RESET.
$MRESET:PUSH R0 ;SAVE REGISTERS
141770 005737 147710 TST TENRUN ;PDP-10 PRESENTLY RUNNING ?
141774 001401 BEQ 90$ ;BR IF NOT
141776 104077 TENSP ;STOP TEN
142000 005037 152236 90$: CLR TENCLK ;AFTER THIS, THE 10 DOESN'T NEED CLOCK INTS
142004 005037 147442 CLR SWTDEP ; OR DATA SWITCHES ...
142010 005037 147706 CLR MONMODE ; ... OR MONITOR MODE (CLEAR FOR KA SIM)
142014 005037 147704 CLR MTTYOF
142020 005037 147700 CLR KASIM ;AND IS NO LONGER IN KASIM MODE
.IF DF CLKASB
142024 005037 157142 CLR TIMFLG ; ... OR TIME OF DAY
142030 005037 157140 CLR TMSFLG
.ENDC DF CLKASB
142034 012777 000100 015310 MOV #DRESET,@.DIAG2 ;MASTER CLEAR THE DTE20
.IF DF %%QMP
;For QMP11, include INTRON in new DTE status
142042 012777 053141 015304 MOV #INTRON!DON10C!ERR10C!INT11C!PERCLR!DON11C!ERR11C,@.STDTE ;CLEAR DTE20 STATUS
.IFF
MOV #DON10C!ERR10C!INT11C!PERCLR!DON11C!ERR11C,@.STDTE ;CLEAR DTE20 STATUS
.ENDC
142050 104141 DFWRTT ;WRITE TO CLOCK
142052 157246 CLKDFL ;SET CLOCK TO DEFAULT
142054 000044 LDSEL
142056 005037 147474 CLR KLCLKR ;CLEAR KL10 CLOCK RUNNING
142062 012701 000012 MOV #LLISTL,R1 ;MUST EXECUTE TEN DIAG FUNCTIONS IN MR
142066 012702 141750 MOV #LLIST,R2 ;ADDRESS OF FUNCTIONS INTO R2
142072 112200 1$: MOVB (R2)+,R0 ;FUNCTION TO R0 FOR THE EXECUTE CALL
142074 004737 141360 JSR PC,$DFXFST ;EXECUTE THE DIAGNOSTIC FUNCTION
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 369
BR11 PALII[KL,SYS] Page 8.1 MASTER RESET ROUTINE
142100 005301 DEC R1 ;DECREMENT COUNT OF # OF FUNCTIONS LEFT
142102 001373 BNE 1$ ;CONTINUE TILL DONE
142104 012704 000003 MOV #3,R4 ;SYNC MBOX NXM LOGIC
142110 104140 2$: DFRDT ;TEST A CHANGE COMING L
142112 000162 162
142114 032777 000010 015200 BIT #BIT3,@.DAT3
142122 001407 BEQ 3$ ;ASSERTED, CONTINUE
142124 012777 002201 015216 MOV #DCOMST!DFUNC!<SSCLK*1000>,@.DIAG1
142132 004737 141412 JSR PC,$$DFXDN ;DO ONE MBOX CLOCK
142136 005304 DEC R4 ;DONE 3 CLOCKS ?
142140 003363 BGT 2$ ;NO, TRY AGAIN
142142 012777 004201 015200 3$: MOV #DCOMST!DFUNC!<CECLK*1000>,@.DIAG1
142150 004737 141412 JSR PC,$$DFXDN ;CONDITIONAL EBOX CLOCK
142154 012777 006201 015166 MOV #DCOMST!DFUNC!<CLRMR*1000>,@.DIAG1
142162 004737 141412 JSR PC,$$DFXDN ;CLEAR MR
142166 112200 MOVB (R2)+,R0
142170 004737 141360 JSR PC,$DFXFST ;SET IR DECODE
142174 112200 MOVB (R2)+,R0 ;GET THE NEXT FUNCTION FROM THE LIST
142176 012701 147552 MOV #WREADY,R1 ;CLEAR A 36 BIT BUFFER FOR SENDING DATA
142202 010105 MOV R1,R5
142204 005025 CLR (R5)+ ;CLEAR A WORK AREA
142206 005025 CLR (R5)+
142210 005015 CLR (R5)
142212 104120 DFWRT ;WRITE 0'S TO EBUS & PREVENT SBUS RESET
142214 112711 000012 MOVB #12,(R1)
142220 112200 MOVB (R2)+,R0 ;GET NEXT DIAG FUNCTION
142222 104120 DFWRT ;LOAD MEMORY TO CACHE SELECTOR
POP R0
EXIT
142226 000137 124062 JMP $EXIT
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 370
BR11 PALII[KL,SYS] Page 9 CONTROL RAM ADDRESS ROUTINE
.SBTTL CONTROL RAM ADDRESS ROUTINE
$WWADR: PUSH R1 ;SAVE R1
142234 005700 TST R0 ;IF BIT 15 SET, AVOID MASTER RESET
142236 100407 BMI 1$
142240 032700 040000 BIT #BIT14,R0 ;IF BIT 14 SET, SPECIAL RESET
142244 001403 BEQ 2$
142246 004737 142616 JSR PC,$SPCMR ;SPECIAL MASTER RESET
142252 000401 BR 1$
142254 104076 2$: MRESET
142256 042700 140000 1$: BIC #BIT15!BIT14,R0 ;CLEAR CONTROL BITS ANYWAY
142262 012705 147554 MOV #WREADY+2,R5
142266 005015 CLR (R5) ;CLEAR A WORK AREA
142270 005045 CLR -(R5)
PUSH R0
142274 004737 142336 JSR PC,99$ ;GO LOAD EBUS BITS 00-05
142300 012700 000052 MOV #LCRDAL,R0 ;WILL WRITE BITS 00-04 OF CR-ADR
142304 104120 DFWRT
POP R0 ;GET COPY OF ORIGINAL CR-ADR
142310 000300 SWAB R0 ;GET BITS 00-04
142312 006200 ASR R0 ;TO LOW ORDER BITS
142314 006200 ASR R0 ;OF R0.
142316 004737 142336 JSR PC,99$ ;GO LOAD EBUS BITS 00-05
142322 012700 000051 MOV #LCRDAR,R0 ;WILL WRITE BITS 5-10 OF CRADR
142326 104120 DFWRT
POP R1 ;RESTORE R1
EXIT
142332 000137 124062 JMP $EXIT
142336 042700 000077 99$: BIC #77,R0 ;DEAL ONLY WITH 6 BITS
142342 110037 147555 MOVB R0,WREADY+3 ;MOV TO EBUS BITS 4 & 5
142346 000300 SWAB R0
142350 110037 147556 MOVB R0,WREADY+4 ;MOV TO EBUS BITS 0,1,2, & 3
142354 010501 MOV R5,R1 ;ADDRESS FOR DFWRT
142356 000207 RTS PC
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 371
BR11 PALII[KL,SYS] Page 10 WCRAM ROUTINE
.SBTTL WCRAM ROUTINE
142360 057 WRLIST: .BYTE LCRAM1 ;CRAM BITS 00-19
142361 056 .BYTE LCRAM2 ;CRAM BITS 20-39
142362 055 .BYTE LCRAM3 ;CRAM BITS 40-59
142363 054 .BYTE LCRAM4 ;CRAM BITS 60-79-EVEN
142364 .EVEN
142364 010102 $WCRAM: MOV R1,R2 ;GET COPY OF DATA ADDRESS
142366 104075 WWADR ;GO AND WRITE C-RAM ADDRESS
142370 012704 000003 MOV #3,R4 ;FOUR LOOPS PER C-RAM WORD
142374 012701 147552 1$: MOV #WREADY,R1 ;GET HOLDING AREA
142400 112221 MOVB (R2)+,(R1)+ ;REAL DATA TO HOLDING AREA
142402 112221 MOVB (R2)+,(R1)+
142404 111221 MOVB (R2),(R1)+
142406 005737 147550 TST SIGNL ;SEE IF DESIRED BITS ON WORD BOUNDARY
142412 001412 BEQ 3$ ;AVOID RORING CODE IF YES
;THIS IS WONDERFUL RORING CODE
142414 105722 TSTB (R2)+ ;MUST INCREMENT DATA ADDR PTR
142416 012700 000004 MOV #4,R0 ;FOUR SHIFTS IN THIS LOOP
142422 012701 147555 2$: MOV #WREADY+3,R1 ;POINT TO HOLDING AREA
142426 106041 RORB -(R1) ;SHIFT & INCLUDE "C" BIT
142430 106041 RORB -(R1)
142432 106041 RORB -(R1)
142434 005300 DEC R0 ;DONE?
142436 001371 BNE 2$ ;LOOP BACK IF NO
;COMMON CODE
142440 005137 147550 3$: COM SIGNL ;CHANGE BOUNDARY FLAG
142444 042737 177760 147554 BIC #177760,WREADY+2 ;ONLY 4 BITS COUNT
142452 004737 142532 4$: JSR PC,$STRCH ;GO FILL IN EBUS SPACE
142456 116400 142360 MOVB WRLIST(R4),R0 ;CORRECT WRITE FUNCTION TO R0
142462 012701 147552 MOV #WREADY,R1 ;ADDRESS OF DATA
142466 104120 DFWRT
142470 005304 DEC R4 ;DONE ENTIRE RAM WORD?
142472 002340 BGE 1$ ;BR BACK IFNO
;CODE TO LOAD DISP 00-04
142474 111237 147556 MOVB (R2),WREADY+4 ;GET DATA FOR DISP
142500 106237 147556 ASRB WREADY+4 ;SHIFT DATA
142504 106037 147555 RORB WREADY+3 ;TO EBUS BITS
142510 106237 147556 ASRB WREADY+4 ;00-05
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 372
BR11 PALII[KL,SYS] Page 10.1 WCRAM ROUTINE
142514 106037 147555 RORB WREADY+3
142520 104141 DFWRTT ;WRITE
142522 147552 WREADY ;DATA ADDRESS
142524 000053 LCRAM5 ;DIAG FUNCTION
EXIT ;DONE
142526 000137 124062 JMP $EXIT
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 373
BR11 PALII[KL,SYS] Page 11 WCRAM ROUTINE
142532 013700 147552 $STRCH: MOV WREADY,R0 ;GET UNSPACED DATA
142536 113737 147554 147555 MOVB WREADY+2,WREADY+3 ;PUT C-RAM 0-3 BITS INTO CORRECT CORE
142544 005003 CLR R3 ;NO JUNK LEFT IN R3
142546 000261 SEC ;SET "C" BIT TO USE AS FLAG
142550 012705 000004 1$: MOV #4,R5 ;FOUR SHIFTS BETWEEN BLANKS
142554 006003 2$: ROR R3 ;NEW DATA LEFT END OF DESTINATION
142556 103407 BCS 3$ ;IF FLAG FALLS OUT..DONE
142560 006000 ROR R0 ;ROTATE SOURCE BITS RIGHT
142562 005305 DEC R5 ;DONE 4 YET??
142564 002373 BGE 2$ ;BR IF NO
142566 006100 ROL R0 ;REPAIR ANY DAMAGES
142570 000241 CLC ;ZERO THE "C" BIT
142572 006003 ROR R3 ;AND ROLL ZEROES
142574 000765 BR 1$ ;AND CONTINUE
;GET HERE TO FINISH UP
142576 000241 3$: CLC ;ZERO "C" BIT AGAIN
142600 006100 ROL R0 ;BITS 4-7
142602 006100 ROL R0 ;MUST BE CORRECTED
142604 010337 147552 MOV R3,WREADY ;BITS 8-19 INTO CORE
142610 110037 147554 MOVB R0,WREADY+2 ;BITS 4-7 INTO CORE
142614 000207 RTS PC ;DONE
;SPECIAL BASIC MASTER RESET
$SPCMR: PUSH <R0,R1,R2>
142624 005037 147474 CLR KLCLKR ;CLEAR KL10 CLOCK RUNNING
142630 012701 142664 MOV #$SMRLST,R1 ;COMMAND ADR TO R1
142634 012702 000004 MOV #4,R2 ;FOUR COMMANDS
142640 012177 014504 1$: MOV (R1)+,@.DIAG1
142644 004737 141412 JSR PC,$$DFXDN ;EXECUTE FUNCTION
142650 005302 DEC R2
142652 001372 BNE 1$
POP <R2,R1,R0>
142662 000207 RTS PC
142664 007201 $SMRLST:.WORD DCOMST!DFUNC!<SETMR*1000>
142666 001201 .WORD DCOMST!DFUNC!<STRCLK*1000>
142670 000201 .WORD DCOMST!DFUNC!<STPCLK*1000>
142672 006201 .WORD DCOMST!DFUNC!<CLRMR*1000>
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 374
BR11 PALII[KL,SYS] Page 12 RCRAM ROUTINE
.SBTTL RCRAM ROUTINE
142674 005700 $RCRAM: TST R0 ;IS R0 NEG
142676 100406 BMI 1$ ;READ CURRENT CR IF YES
142700 104075 WWADR ;EXAMINE ADDRESS IN R0 IF HERE
142702 012777 003201 014440 MOV #DCOMST!DFUNC!<SECLK*1000>,@.DIAG1
142710 004737 141412 JSR PC,$$DFXDN ;CLOCK ADDRESS CONTENTS TO C.R.
142714 012703 147546 1$: MOV #$BUFRC+10.,R3 ;GET BUFFER ADDR FOR C-RAM CONTENTS
142720 012704 143150 MOV #$RDLST,R4 ;GET DIAG FUNCTION LIST
142724 112400 2$: MOVB (R4)+,R0 ;DIAG FUNCTION
142726 104116 DFRD
142730 012701 147552 MOV #WREADY,R1 ;DESTINATION OF READ/MOVE
142734 013700 157322 MOV .DAT3,R0
142740 012021 MOV (R0)+,(R1)+
142742 012021 MOV (R0)+,(R1)+
142744 011011 MOV (R0),(R1)
142746 004737 143154 JSR PC,$SQASH ;GO CLEAR OUT BLANKS
142752 012700 147555 MOV #WREADY+3,R0 ;ADDRESS OF DATA JUST READ
142756 114043 MOVB -(R0),-(R3) ;BITS 16-19 TO BUFFER
142760 005737 147532 TST SIGNL2 ;CHECK TRAFFIC LIGHT
142764 001005 BNE 4$ ;BR TO RORING IF WRONG BOUNDARY
142766 114043 3$: MOVB -(R0),-(R3) ;BITS 20-27 TO WORK AREA
142770 114043 MOVB -(R0),-(R3) ;BITS 28-35 TO WORK AREA
142772 005137 147532 COM SIGNL2 ;CHANGE SIGNAL
142776 000752 BR 2$ ;GET MORE DATA
143000 106313 4$: ASLB (R3) ;NEED TO FIX A HALF BYTE
143002 106313 ASLB (R3)
143004 106313 ASLB (R3)
143006 106313 ASLB (R3)
PUSH R0 ;DON'T LOSE DATA ADDRESS
143012 012700 000004 MOV #4,R0 ;DO NEXT LOOP FOUR TIMES
143016 010302 10$: MOV R3,R2 ;ADDRESS OF DATA TO R2
143020 106122 ROLB (R2)+ ;SHIFT AND DON'T FORGET "C"
143022 106122 ROLB (R2)+
143024 106122 ROLB (R2)+
143026 106122 ROLB (R2)+
143030 005300 DEC R0 ;ASSEMBLED COMPLETE HALF BYTE
143032 001371 BNE 10$ ;LOOP AGAIN IF NO
POP R0 ;RETRIEVE DATA ADDRESS
143036 105723 TSTB (R3)+ ;FIX DESTINATION ADDRESS
143040 005737 147530 TST SIGNL3 ;CHECK SIGNAL
143044 001003 BNE 15$ ;DONE IF MINUS
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 375
BR11 PALII[KL,SYS] Page 12.1 RCRAM ROUTINE
143046 005137 147530 COM SIGNL3 ;OTHERWISE CHANGE SIGNAL
143052 000745 BR 3$ ;CONTINUE
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 376
BR11 PALII[KL,SYS] Page 13 RCRAM ROUTINE
143054 113743 147553 15$: MOVB WREADY+1,-(R3) ;ENDING UP
143060 113743 147552 MOVB WREADY,-(R3) ;CRAM BITS 0-15 TO BUFFER
143064 005137 147530 COM SIGNL3 ;SIGNL3 TO ZERO
143070 005137 147532 COM SIGNL2 ;SIGNL2 TO ZERO
143074 104140 DFRDT
143076 000141 RCSPEC ;READ SPEC FIELD
143100 017701 014220 MOV @.DAT2,R1 ;GET DISP 03,04
143104 017700 014216 MOV @.DAT1,R0 ;GET DISP 00,01,02
143110 006101 ROL R1 ;JUSTIFY IN R0
143112 006100 ROL R0
143114 006101 ROL R1
143116 006100 ROL R0
143120 042700 177740 BIC #177740,R0 ;CLEAR TRASH
143124 110037 147546 MOVB R0,$BUFRC+12 ;SAVE IN BUFFER
143130 012700 147536 MOV #$BUFRC+2,R0 ;RETURN DATA ADDRESS IN R0
143134 042710 000005 BIC #5,(R0) ;CLEAR PARITY BITS
143140 042740 052525 BIC #52525,-(R0) ;AND FIX ADDRESS
EXIT ;DONE
143144 000137 124062 JMP $EXIT
143150 147 $RDLST: .BYTE RCRAM1 ;READ CRAM 0-19
143151 146 .BYTE RCRAM2 ;READ CRAM 20-39
143152 145 .BYTE RCRAM3 ;READ CRAM 40-59
143153 144 .BYTE RCRAM4 ;READ CRAM 60-79-EVEN
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 377
BR11 PALII[KL,SYS] Page 14 RCRAM ROUTINE
143154 013701 147552 $SQASH: MOV WREADY,R1 ;GET STRETCHED BITS 8-19
143160 013702 147554 MOV WREADY+2,R2 ;GET STRECHED BITS 0-7
143164 005000 CLR R0 ;CLEAR A DESTINATION
143166 000261 SEC ;SET A DONE FLAG
143170 006000 ROR R0 ;AND ROLLIT INTO R0
143172 012705 000004 1$: MOV #4,R5 ;FOUR BITS PER GROUP
143176 005305 2$: DEC R5 ;DONE A GROUP OF FOUR
143200 002413 BLT 20$ ;BRANCH IF NO
143202 006202 ASR R2 ;ROTATE SOURCE BITS RIGHT
143204 006001 ROR R1 ;ALL TWENTY OF THEM
143206 006000 ROR R0 ;BEGIN WITH FIRST FLAG INTO R0
143210 103372 BCC 2$ ;IF FLAG FALLS OUT..DONE
;HERE TO FINISH UP
143212 006201 ASR R1 ;MAKE LAST BLANKS
143214 006201 ASR R1 ;GO VERY FAR AWAY
143216 010037 147552 MOV R0,WREADY ;STORE RESULTS IN CORE
143222 010137 147554 MOV R1,WREADY+2 ;ALL DONE
143226 000207 RTS PC ;RETURN
143230 006202 20$: ASR R2 ;HERE TO SHIFT AWAY
143232 006001 ROR R1 ;THE PAIR
143234 006202 ASR R2 ;OF BLANKS HIDDEN
143236 006001 ROR R1 ;AMIDST THE REAL DATA
143240 000754 BR 1$ ;CONTINUE
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 378
BR11 PALII[KL,SYS] Page 15 MICNUL & MICFIL C-RAM ROUTINES
.SBTTL MICNUL & MICFIL C-RAM ROUTINES
;MICNUL, FILL C-RAM LOCATIONS WITH ZEROS
143242 010102 $MICNUL:MOV R1,R2 ;NUMBER OF WORDS TO R2
143244 010003 MOV R0,R3 ;SAVE START ADDRESS
143246 052703 100000 BIS #100000,R3 ;BYPASS MR AFTER FIRST TIME
143252 012701 147576 MOV #ZEROS,R1
143256 104075 1$: WWADR ;WRITE C-RAM ADDRESS
143260 012704 000003 MOV #3,R4
143264 112700 000057 MOVB #LCRAM1,R0 ;1ST FUNCTION IS A WRITE
143270 104120 DFWRT
143272 116400 143322 2$: MOVB FLST(R4),R0 ;DIAG FUNCTION
143276 004737 141360 JSR PC,$DFXFST
143302 005304 DEC R4
143304 002372 BGE 2$ ;ZERO ALL BITS
143306 005203 INC R3 ;INCREMENT C-RAM ADDRESS
143310 010300 MOV R3,R0
143312 005302 DEC R2 ;FINISHED ALL WORDS YET ?
143314 003360 BGT 1$
10$: EXIT ;YES
143316 000137 124062 JMP $EXIT
143322 053 FLST: .BYTE LCRAM5
143323 054 .BYTE LCRAM4
143324 055 .BYTE LCRAM3
143325 056 .BYTE LCRAM2
143326 057 .BYTE LCRAM1
143330 .EVEN
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 379
BR11 PALII[KL,SYS] Page 16 MICNUL & MICFIL C-RAM ROUTINES
;MICFIL, C-RAM FILL WITH ONES ROUTINE
143330 010102 $MICFIL:MOV R1,R2 ;NUMBER OF WORDS TO R2
143332 010003 MOV R0,R3 ;SAVE ADDRESS
143334 052703 100000 BIS #100000,R3 ;BYPASS MR AFTER FIRST TIME
143340 012701 100056 MOV #TENMO,R1 ;36 BITS OF ONES
143344 104075 1$: WWADR ;WRITE C-RAM ADDRESS
143346 012704 000004 MOV #4,R4
143352 116400 143322 2$: MOVB FLST(R4),R0 ;DIAG FUNCTION
143356 104120 DFWRT
143360 005304 DEC R4 ;DO ALL BITS
143362 002373 BGE 2$
143364 005203 INC R3 ;INCREMENT C-RAM ADDRESS
143366 010300 MOV R3,R0
143370 005302 DEC R2 ;DONE ALL ADDRESSES YET ?
143372 003364 BGT 1$
10$: EXIT
143374 000137 124062 JMP $EXIT
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 380
BR11 PALII[KL,SYS] Page 17 WDRAM ROUTINE
.SBTTL WDRAM ROUTINE
143400 010002 $WDRAM: MOV R0,R2 ;COPY DRAM ADDRESS
143402 006000 ROR R0 ;CHECK IF ODD OR EVEN
143404 103002 BCC 1$ ;BR IF EVEN
143406 000137 113350 JMP ADRERR ;ADDRESS ERROR IF ODD
143412 006100 1$: ROL R0 ;FIX ADDRESS
PUSH R1 ;SAVE POINTER TO DATA
143416 104130 DRAMAD ;GO WRITE DRAM ADDRESS
POP R3 ;PUT POINTER TO DATA IN R3
143422 012301 MOV (R3)+,R1 ;DATA INTO R1
143424 004537 143772 JSR R5,DATEVE ;WRITE EVEN DATA
143430 012301 MOV (R3)+,R1 ;DATA INTO R1
143432 004537 143756 JSR R5,DATODD ;WRITE ODD DATA
143436 011301 MOV (R3),R1 ;DATA INTO R1
143440 004537 143744 JSR R5,DATCOM ;WRITE COMMON DATA
EXIT
143444 000137 124062 JMP $EXIT
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 381
BR11 PALII[KL,SYS] Page 18 RDRAM ROUTINE
.SBTTL RDRAM ROUTINE
$RDRAM: PUSH <R1,R0> ;SAVE R1,STORE DRAM ADDR ON STACK TOP
143454 005001 CLR R1 ;R1 IS AN INDEX COUNTER
143456 104130 1$: DRAMAD ;WRITE DRAM ADDRESS
143460 012777 015201 013662 MOV #DCOMST!DFUNC!<DRLTCH*1000>,@.DIAG1
143466 004737 141412 JSR PC,$$DFXDN ;STROBE DATA TO LATCHES
143472 104140 DFRDT
143474 000135 DRJ710 ;FUNCTION TO READ J07,08,09,10
143476 017700 013622 MOV @.DAT2,R0 ;GET J DATA 7-10
143502 006200 ASR R0 ;RIGHT JUSTIFY
143504 006200 ASR R0 ;J-FIELD DATA
143506 042700 177700 BIC #177700,R0 ;CLEAR EXTRA
143512 110061 147516 MOVB R0,RDRTMP(R1) ;SAVE DATA IN CORE
143516 005201 INC R1 ;INCREMENT INDEX
143520 104140 DFRDT
143522 000133 DRAMAB ;FUNCTION TO READ "A" & "B" FIELD
143524 017700 013574 MOV @.DAT2,R0 ;GET A & B DATA
143530 006200 ASR R0 ;RIGHT JUSTIFY
143532 006200 ASR R0 ;IN R0
143534 042700 177700 BIC #177700,R0 ;CLEAR EXTRA
143540 110061 147516 MOVB R0,RDRTMP(R1) ;STORE IN CORE
143544 005201 INC R1 ;INCREMENT INDEX
;DECIDE IF THIS IS FIRST OR SECOND PASS
143546 020127 000003 CMP R1,#3 ;INDEX UP TO 3 YET??
143552 002003 BGE 2$ ;ON OUT IF YES
POP R0 ;IF NO,GET DRAM ADDRESS
143556 005200 INC R0 ;GET ODD HALF OF EVEN/ODD PAIR
143560 000736 BR 1$ ;LOOP AGAIN
143562 104140 2$: DFRDT
143564 000134 DRJ1.4 ;FUNCTION TO READ J01-J04
143566 017700 013532 MOV @.DAT2,R0 ;GET JDATA 01-04
143572 006200 ASR R0 ;RIGHT JUSTIFY
143574 006200 ASR R0 ;J1-J4 BITS
143576 042700 177760 BIC #177760,R0 ;CLEAR UNWANTED
143602 110037 147522 MOVB R0,RDRTMP+4 ;BIT SET TO CORE
143606 012700 147516 MOV #RDRTMP,R0 ;PASS BACK DATA ADDRESS IN R0
POP R1 ;RESTORE R
EXIT
143614 000137 124062 JMP $EXIT
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 382
BR11 PALII[KL,SYS] Page 19 RDRAM ROUTINE
143620 012703 147522 $DRAMAD: MOV #DDRAM,R3 ;GET ADDRESS OF EBUS DATA
143624 010304 MOV R3,R4 ;GET A COPY IN R4
143626 122424 CMPB (R4)+,(R4)+ ;INCREMENT IT TO DDRAM+2
143630 010002 MOV R0,R2 ;PUT ACTUAL ADDRESS IN R2
143632 005102 COM R2 ;READY TO TEST ADDR BITS 0-2
143634 032702 000700 BIT #700,R2 ;MAKE THE TEST
143640 001416 BEQ 1$ ;BR IF ADDR IS 7XX
;CODE FOR NON 7XX ADDRESSES
143642 005102 COM R2 ;WAS NOT 7XX,SO FIX ADDRESS
143644 006302 ASL R2 ;JUSTIFY ADDRESS IN
143646 006302 ASL R2 ;CORRECT BIT POSITION
143650 006302 ASL R2 ;NEED THREE SHIFTS
143652 105024 CLRB (R4)+ ;INCREMENT TO DDRAM+3
143654 110224 MOVB R2,(R4)+ ;MOVE ADDR BITS 4-8 TO EBUS DATA
143656 000302 SWAB R2 ;GET THE REST OF THE BITS
143660 110214 MOVB R2,(R4) ;MOVE ADDR BITS 0-3 TO EBUS DATA
143662 004737 142616 4$: JSR PC,$SPCMR ;SPECIAL MASTER RESET
143666 004537 143730 JSR R5,WIRAR ;GO TO DO THE ACTUAL WRITE
EXIT
143672 000137 124062 JMP $EXIT
;CODE FOR 7XX ADRESSES
143676 005102 1$: COM R2 ;FIX ADDRESS TO ORIGINAL STATE
143700 006002 ROR R2 ;PUT LOW ORDER BIT IN "C" BIT
143702 103402 BCS 2$ ;"C" SET MEANS IR BIT 12 MUST=1
143704 105024 CLRB (R4)+ ;NO "C" BIT MEANS IR BIT 12 MUST=0
143706 000402 BR 3$ ;GO TO MOVE ADDRESS TO EBUS DATA
143710 112724 000200 2$: MOVB #200,(R4)+ ;SET IR BIT 12=1
143714 042702 000340 3$: BIC #340,R2
143720 110224 MOVB R2,(R4)+ ;MOVE D-RAM ADDR TO EBUS BIT POSITION 7-11
143722 112714 000016 MOVB #16,(R4) ;SET THE 7 FROM 7XX IN EBUS DATA
143726 000755 BR 4$
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 383
BR11 PALII[KL,SYS] Page 20 RDRAM ROUTINE
;WRITE THE IR
143730 012701 147522 WIRAR: MOV #DDRAM,R1 ;EBUS DATA ALWAYS AT DDRAM
143734 012700 000077 WIRAR1: MOV #LDAR,R0 ;FUNCTION TO LOAD AR
143740 104121 DFWIR
143742 000205 RTS R5
;NOW FOR COMMON LITTLE PIECES OF THE LOADING OF THE DRAM
143744 012700 000062 DATCOM: MOV #LDRAM3,R0 ;GET DIAG FUN TO WRITE COMMON
143750 006301 ASL R1 ;JUSTIFY DATA FOR THE EBUS
143752 006301 ASL R1
143754 000424 BR CON2 ;GO WRITE IT
143756 012737 000061 147500 DATODD: MOV #LDRAM2,$DDRMS ;FUNCTION FOR J-FIELD A & B
143764 012700 000064 MOV #LDRJOD,R0 ;FUNCTION FOR J-FIELD ODD
143770 000405 BR CON1 ;GO
143772 012737 000060 147500 DATEVE: MOV #LDRAM1,$DDRMS ;FUNCTION FOR J-FIELD A & B
144000 012700 000063 MOV #LDRJEV,R0 ;FUNCTION J-FIELD EVEN
144004 006301 CON1: ASL R1 ;JUSTIFY PIECE I'M
144006 006301 ASL R1 ;INTERESTED IN FOR J-DATA FIELDS
PUSH R1 ;SAVE DATA TO BE SENT
144012 004537 144026 JSR R5,CON2 ;WRITE J-DATA
POP R1 ;GET DATA AGAIN
144020 000301 SWAB R1 ;NOW I'VE GOT A & B
144022 013700 147500 MOV $DDRMS,R0 ;GET CORRECT DIAG FUNCTION, & WRITE
144026 110137 147524 CON2: MOVB R1,DDRAM+2 ;R1 ALWAYS HAS THE DATA
144032 012701 147522 MOV #DDRAM,R1 ;I ALWAYS PUT IT IN DDRAM
144036 104120 DFWRT
144040 000205 RTS R5 ;NOW WRITE
;CLOCK DEFAULT PARAMETER ADDRESS
144042 012700 157246 $CLKPRM:MOV #CLKDFL,R0 ;PUT ADDRESS IN R0
EXIT
144046 000137 124062 JMP $EXIT
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 384
BR11 PALII[KL,SYS] Page 21 M-BOX CLOCK BURST ROUTINE
.SBTTL M-BOX CLOCK BURST ROUTINE
144052 005037 147474 $BURST: CLR KLCLKR ;CLEAR KL10 CLOCK RUNNING
144056 012701 147476 MOV #$STDAT,R1 ;WORD POINTER TO R1
144062 010002 MOV R0,R2 ;BURST COUNT TO R2
144064 042702 177600 BIC #177600,R2 ;SAVE LOWER 7 BITS
144070 006100 ROL R0
144072 000300 SWAB R0
144074 005003 CLR R3
144076 150003 BISB R0,R3 ;# OF 128. CLOCK MULTIPLES
144100 001425 BEQ 2$ ;NONE, DO BURST
144102 012777 000201 013240 1$: MOV #DCOMST!DFUNC!<STPCLK*1000>,@.DIAG1
144110 004737 141412 JSR PC,$$DFXDN ;CLEAR BURST MODE
144114 005011 CLR (R1)
144116 012700 000042 MOV #LDBRR,R0
144122 104120 DFWRT ;CLEAR BURST REG RIGHT
144124 012711 000010 MOV #10,(R1)
144130 012700 000043 MOV #LDBRL,R0
144134 104120 DFWRT ;LOAD BURST REG LEFT
144136 012777 005201 013204 MOV #DCOMST!DFUNC!<BRCLK*1000>,@.DIAG1
144144 004737 141412 JSR PC,$$DFXDN ;BURST 128 CLOCKS
144150 005303 DEC R3 ;ANY MORE ?
144152 003353 BGT 1$ ;YES, DO 128 MORE
144154 012777 000201 013166 2$: MOV #DCOMST!DFUNC!<STPCLK*1000>,@.DIAG1
144162 004737 141412 JSR PC,$$DFXDN ;CLEAR BURST MODE
144166 010203 MOV R2,R3 ;NUMBER LEFT TO DO
144170 042702 177760 BIC #177760,R2
144174 010211 MOV R2,(R1)
144176 012700 000042 MOV #LDBRR,R0
144202 104120 DFWRT ;LOAD BURST REG RIGHT
SR R3,4
144214 010311 MOV R3,(R1)
144216 012700 000043 MOV #LDBRL,R0
144222 104120 DFWRT ;LOAD BURST REG LEFT
144224 012777 005201 013116 MOV #DCOMST!DFUNC!<BRCLK*1000>,@.DIAG1
144232 004737 141412 JSR PC,$$DFXDN ;BURST THE CLOCK
EXIT
144236 000137 124062 JMP $EXIT
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 385
BR11 PALII[KL,SYS] Page 22 LOAD AR ROUTINE
.SBTTL LOAD AR ROUTINE
; ROUTINE TO LOAD THE AR WITH AN INSTRUCTION TO BE EXECUTED.
; GETS THE MICROCODE TO THE HALT LOOP, AND THEN LINES UP THE
; MBOX PHASE CHANGE TIMING WITH EBOX SYNC BEFORE LOADING
; THE AR. THE LATTER IS NECCESSARY IN ORDER TO MAKE INSTRUCTION
; EXECUTION REPEATABLE AT THE CLOCK TICK LEVEL FOR "TRACE" AND
; FOR THE MBOX DIAGNOSTIC.
144242 010003 $LODAR: MOV R0,R3 ;SAVE DATA POINTER
144244 012777 010201 013076 MOV #DCOMST!DFUNC!<CLRRUN*1000>,@.DIAG1
144252 004737 141412 JSR PC,$$DFXDN ;STOP EXECUTION
144256 012700 000177 MOV #177,R0
144262 104131 BURST ;RUN CLOCK FOR FIXED PERIOD
144264 012777 004201 013056 MOV #DCOMST!DFUNC!<CECLK*1000>,@.DIAG1
144272 004737 141412 JSR PC,$$DFXDN ;GET EBOX CLOCK FALSE
144276 032777 001000 013044 BIT #HALTLP,@.DIAG1
144304 001002 BNE 1$ ;IF AT HALT LOOP
3$: EXITERR
144306 000137 124034 JMP $EXITE
; NOW CALL ROUTINE TO GET MBOX IN PHASE
144312 004737 144376 1$: JSR PC,$MBPHS
144316 103001 BCC 2$ ;BR IF ALL OK
144320 000772 BR 3$
144322 010301 2$: MOV R3,R1
144324 012700 000077 MOV #LDAR,R0
144330 104120 DFWRT ;LOAD AR
EXIT
144332 000137 124062 JMP $EXIT
; SETMPH EMT ROUTINE TO SELECT WHICH MBOX PHASE TO SYNC UP TO
;DURING THE LODAR PROCESS. R0 SELECTS ONE OF FOUR PLACES TO SYNC.
; R0 = 0, A CHANGE COMING; R0 = 1, HALFWAY TWIXT A AND B
; R0 = 2, B CHANGE COMING; R0 = 3, HALFWAY TWIXT B AND A.
144336 010037 157220 $SETMPH:MOV R0,$STODD ;SAVE FOR HALF-PHASE TEST
144342 042700 000001 BIC #BIT0,R0 ;CLR ODD-EVEN BIT
144346 016037 144366 157214 MOV $STMTB(R0),$MPHDF ;SET DF VALUE FOR A OR B CHANGE
144354 016037 144372 157216 MOV $STMT1(R0),$MPHMK ;SET BIT MASK FOR A OR B CHANGE
EXIT
144362 000137 124062 JMP $EXIT
144366 000162 $STMTB: 162 ;A CHANGE COMING DF
144370 000163 163 ;B CHANGE COMING DF
144372 000010 $STMT1: 10 ;A CHANGE COMING BIT MASK
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 386
BR11 PALII[KL,SYS] Page 22.1 LOAD AR ROUTINE
144374 000400 400 ;B CHANGE COMING BIT MASK
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 387
BR11 PALII[KL,SYS] Page 23 MBOX PHASE ROUTINE
.SBTTL MBOX PHASE ROUTINE
; ROUTINE TO PHASE THE MBOX WITH THE EBOX HALT LOOP.
; MICROCODE ASSUMPTIONS: THE HALT LOOP IS TWO INSTRUCTIONS
; THE FIRST IS AT AN EVEN ADDRESS AND HAS T=3T (these used to be labeled
; THE SECOND IS AT AN ODD ADDRESS AND HAS T=2T backwards)
; THIS CODE LOOKS FOR THE INTERSECTION OF THE EVEN ADDRESS,
; CLK SYNC TRUE, PHASE CHANGE COMING TRUE, AND THE SELECTED
; PHASE (A OR B CHANGE COMING). THE LATTER IS CHOSEN BY
; THE "SETMPH" EMT.
144376 012702 000024 $MBPHS: MOV #20.,R2 ;SET TIMOUT VALUE
144402 012701 000001 1$: MOV #1,R1 ;SET TICK COUNTER
144406 104140 DFRDT
144410 000102 102
144412 032777 000004 012702 BIT #BIT2,@.DAT3 ;BIT 33, CLK SYNC H
144420 001442 BEQ 41$ ;FALSE, TRY 1 CLOCK
144422 104140 DFRDT
144424 000144 144
144426 032777 040000 012670 BIT #BIT14,@.DAT2 ;BIT 5, CR ADR 10 H
144434 001033 BNE 42$ ;ODD, TRY 2 CLOCKS
144436 104140 DFRDT
144440 000164 164
144442 032777 000040 012652 BIT #BIT5,@.DAT3 ;BIT 30,PHASE CHANGE COMING L
144450 001023 BNE 45$ ;FALSE, TRY 5 CLOCKS
144452 013700 157214 MOV $MPHDF,R0 ;used to be MOVB -- jbr 4/27
144456 104116 DFRD
144460 005000 CLR R0
144462 033777 157216 012632 BIT $MPHMK,@.DAT3 ;EITHER A OR B CHANGE COMING L used to be bitb --jbr
144470 001402 BEQ 2$ ;TRUE, EXIT
144472 012700 000012 MOV #10.,R0 ;NEED 10 CLOCKS
144476 032737 000001 157220 2$: BIT #BIT0,$STODD ;WANT HALFWAY BETWEEN?
144504 001402 BEQ 3$ ;BR IF NOT
144506 062700 000005 ADD #5,R0 ;FIVE MORE TICKS THEN
144512 104131 3$: BURST ;DO THIS BURST:0,5,10, OR 15
144514 000241 CLC
144516 000207 RTS PC ;WE'RE THERE
144520 062701 000003 45$: ADD #3,R1 ;MAKE IT FOUR
144524 005201 42$: INC R1 ;MAKE IT TWO OR FIVE
144526 010100 41$: MOV R1,R0
144530 104131 BURST ;DO ONE TWO OR FIVE
144532 005302 DEC R2 ;COUNT TIMEOUT
144534 001322 BNE 1$
144536 000261 SEC
144540 000207 RTS PC ;TOOK TOO LONG, ERROR
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 388
BR11 PALII[KL,SYS] Page 24 VMA, VMAH, PC & ADDRESS BREAK ROUTINE
.SBTTL VMA, VMAH, PC & ADDRESS BREAK ROUTINE
;ROUTINE TO READ ONE OF 4 REGISTERS ON THE VMA BOARD.
;ROUTINE RETURNS WITH R0 POINTING TO A 36 BIT WORD WITH
;THE DESIRED DATA JUSTIFIED AT BIT 35
144542 012700 000157 $DFVMH: MOV #DPVMHD,R0 ;FUNCTION TO READ VMA HELD
144546 000402 BR $DFPC1
144550 012700 000153 $DFPC: MOV #DPPC,R0 ;FUNCTION TO READ PC
144554 012705 000003 $DFPC1: MOV #3,R5
144560 012704 000273 MOV #273,R4 ;MASK FOR REGISTER OFFSET FROM BIT 35
144564 000410 BR $VMPC
144566 012700 000157 $DFVMA: MOV #DPVMA,R0 ;DIAG FUNCTION TO READ VMA
144572 000402 BR $VMPC1
144574 012700 000153 $DFADB: MOV #DPADB,R0 ;DIAG FUNCTION TO READ ADDRESS BREAK
144600 012704 000356 $VMPC1: MOV #356,R4
144604 005005 CLR R5
$VMPC: PUSH R0
144610 012702 000004 MOV #4,R2 ;FOUR READS PER REGISTER
144614 012701 147570 MOV #VMADAT,R1 ;FIRST CLEAR ENTIRE 36-BIT BUFFER
144620 005021 CLR (R1)+
144622 005021 CLR (R1)+
144624 005021 CLR (R1)+
144626 012701 147552 1$: MOV #WREADY,R1 ;PUT DFRD DATA HERE
144632 104117 DFRDMV
144634 012700 000005 MOV #5,R0 ;MASK RECEIVED DATA, FIVE BYTES WORTH
144640 140421 2$: BICB R4,(R1)+
144642 005300 DEC R0
144644 003375 BGT 2$
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 389
BR11 PALII[KL,SYS] Page 25 VMA, VMAH, PC & ADDRESS BREAK ROUTINE
144646 012701 147557 MOV #WREADY+5,R1 ;NOW MOVE READ DATA
144652 012700 147575 MOV #VMADAT+5,R0 ;TO VMA REGISTER DATA
144656 154140 BISB -(R1),-(R0)
144660 154140 BISB -(R1),-(R0)
144662 154140 BISB -(R1),-(R0)
144664 154140 BISB -(R1),-(R0)
144666 154140 BISB -(R1),-(R0)
144670 106120 ROLB (R0)+ ;AND NOW SHIFT 35 BITS
144672 106120 ROLB (R0)+ ;BY ONE BIT
144674 106120 ROLB (R0)+
144676 106120 ROLB (R0)+
144700 106120 ROLB (R0)+
144702 005316 DEC (SP) ;CREATE NEXT DIAG FUNCTION
144704 011600 MOV (SP),R0 ;TAKE IT OFF THE STACK
144706 005302 DEC R2 ;DONE FOUR FUNCTIONS YET?
144710 003346 BGT 1$ ;BR IF MORE TO DO
;ALL DONE READING DATA, NOW JUSTIFY CORRECTLY FOR THE RETURN MACHINE
144712 012700 147575 3$: MOV #VMADAT+5,R0 ;MUST CORRECT BY OFFSET AMOUNT
144716 106040 RORB -(R0)
144720 106040 RORB -(R0)
144722 106040 RORB -(R0)
144724 106040 RORB -(R0)
144726 106040 RORB -(R0)
144730 005305 DEC R5 ;DONE YET?
144732 003367 BGT 3$ ;BR IF NO
;OFFSET MAY ORIGINALLY NEED TO BE GREATER THAN 0 IF
;VMA DIAG MIXERS NOT RIGHT JUSTIFIED AT EBUS BIT 35
4$: POP R0
144736 012700 147570 MOV #VMADAT,R0
EXIT
144742 000137 124062 JMP $EXIT
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 390
KLDCP PAL[KL,SYS] Page 5.10 VMA, VMAH, PC & ADDRESS BREAK ROUTINE
;Storage definitions
.INSRT SBST11.PAL
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 391
SBST11 PAL[KL,SYS] Page 1 VMA, VMAH, PC & ADDRESS BREAK ROUTINE
COMMENT ⊗ VALID 00009 PAGES
C REC PAGE DESCRIPTION
C00001 00001
C00002 00002 .SBTTL *STORE* PROGRAM STORAGE FILE, 5-AUG-75
C00004 00003 BUFFER CREATION MACROS
C00005 00004 PROGRAM BUFFERS & STORAGE AREA
C00012 00005 COMMON STORAGE
C00017 00006 DECTAPE PARAMETER STORAGE
C00020 00007 TELETYPE BUFFERS
C00023 00008 CONSOLE PARAMETER STORAGE
C00025 00009 MISCELLANEOUS STORAGE
C00028 ENDMK
C⊗;
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 392
SBST11 PAL[KL,SYS] Page 2 *STORE* PROGRAM STORAGE FILE, 5-AUG-75
.SBTTL *STORE* PROGRAM STORAGE FILE, 5-AUG-75
.MACRO INFORM A,B
.IF P2
.PRINT \A=B
\
.ENDC
.ENDM
.IF DF KLDCP
;DECISION TABLES FOR KL10/11 SUBROUTINE PACKAGE
$DTBL0:
144746 012 $LF: .BYTE 12
144747 015 $CR: .BYTE 15
144750 007 $BELL: .BYTE 07
144751 000 .BYTE 00
144752 .EVEN
144752 144760 $DTBL1: $LFTBL ;LINE FEED FILL TABLE
144754 144766 $CRTBL ;CARRIAGE RETURN FILL TABLE
144756 144774 $BELLT ;BELL FILL TABLE
144760 001
144761 001 $LFTBL: .BYTE 1,1
144762 002
144763 001 .BYTE 2,1
144764 002
144765 004 .BYTE 2,4
144766 000
144767 000 $CRTBL: .BYTE 0,0
144770 011
144771 001 .BYTE 9.,1
144772 002
144773 004 .BYTE 2,4
144774 002
144775 002 $BELLT: .BYTE 2,2
144776 002
144777 002 .BYTE 2,2
145000 002
145001 002 .BYTE 2,2
145002 023420 $DTBL: 10000.
145004 001750 1000.
145006 000144 100.
145010 000012 10.
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 393
SBST11 PAL[KL,SYS] Page 2.1 *STORE* PROGRAM STORAGE FILE, 5-AUG-75
145012 000001 1.
145014 000001 $TBLL: 1.
145016 000012 10.
145020 000144 100.
145022 001750 1000.
145024 023420 10000.
.ENDC ;IF DF KLDCP
INFORM PROGRAM END,\.
.IF P2
.PRINT \PROGRAM END=145026
\
.ENDC
;THIS SECTION CONTAINS ALL PROGRAM TEXT LITERALS
145026 147416 $$FF: $$CLIT
145030 $$LITT=.
147416 $$$FF=$$CLIT
INFORM LITERAL END,\$$CLIT
.IF P2
.PRINT \LITERAL END=147416
\
.ENDC
.IF P2
147416 .=$$CLIT
147440 PATCH: .BLKW 11
PATCH+22 147440 2-64 .MSG Adjust size of PATCH according to amount of space available or needed.
147440 PATEND==.
.ENDC
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 394
SBST11 PAL[KL,SYS] Page 3 *STORE* PROGRAM STORAGE FILE, 5-AUG-75
;BUFFER CREATION MACROS
157360 $$BUF== COREND-420 ;ROOM FOR STACK
157360 $$STKM==$$BUF ;Bottom boundary of stack
;WORD BUFFER ASSIGNMENT MACRO
.MACRO .BUFW $BTAG,$BARG
.IIF NE $$BUF&1,$$BUF==$$BUF-1
.IIF B $BARG,$$BARG==1
.IIF NB $BARG,$$BARG==$BARG
$$BUF==$$BUF-<$$BARG*2>
.NLIST
.LIST ME
.LIST
$BTAG== $$BUF
.NLIST ME
.ENDM
;BYTE BUFFER ASSIGNMENT MACRO
.MACRO .BUFB $BTAG,$BARG
.IIF B $BARG,$$BARG==1
.IIF NB $BARG,$$BARG==$BARG
$$BUF==$$BUF-$$BARG
.NLIST
.LIST ME
.LIST
$BTAG== $$BUF
.NLIST ME
.ENDM
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 395
SBST11 PAL[KL,SYS] Page 4 *STORE* PROGRAM STORAGE FILE, 5-AUG-75
157356 .DIAG3== $$BUF
157354 .STDTE== $$BUF
157352 .DIAG2== $$BUF
157350 .DIAG1== $$BUF
157346 .T11DT== $$BUF
157344 .T10DT== $$BUF
157342 .T11AD== $$BUF
157340 .T10AD== $$BUF
157336 .BC11== $$BUF
157334 .BC10== $$BUF
157332 .TENA2== $$BUF
157330 .TENA1== $$BUF
157326 .DAT1== $$BUF
157324 .DAT2== $$BUF
157322 .DAT3== $$BUF
157320 .DELAY== $$BUF
157316 $ONETM== $$BUF
157314 $ILDSUM== $$BUF
157312 $PWRCNT== $$BUF
157310 DEVTYP== $$BUF
157306 FLOPPY== $$BUF
157304 LPTFLG== $$BUF
157302 LPTYPE== $$BUF
157300 RXUNIT== $$BUF
157276 DTUNIT== $$BUF
157274 RPUNIT== $$BUF
157272 $BKFLG== $$BUF
157264 CLKPE== $$BUF
157262 PEBITS== $$BUF
157254 PAGDFL== $$BUF
157246 CLKDFL== $$BUF
157240 SWS10== $$BUF
157232 $SWS10== $$BUF
157230 $$SWR== $$BUF
157222 $$STJRS== $$BUF
157220 $STODD== $$BUF
157216 $MPHMK== $$BUF
157214 $MPHDF== $$BUF
157210 TGOADR== $$BUF
157204 PGOADR== $$BUF
157202 PGOCTL== $$BUF
157200 SEADR== $$BUF
157172 TIM11== $$BUF
157164 TIMBAS== $$BUF
157162 KTIMBS== $$BUF
157160 CLKFLG== $$BUF
157152 TIMTMP== $$BUF
157144 TIMADR== $$BUF
157142 TIMFLG== $$BUF
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 396
SBST11 PAL[KL,SYS] Page 4.1 *STORE* PROGRAM STORAGE FILE, 5-AUG-75
157140 TMSFLG== $$BUF
157136 T11DBF== $$BUF
157134 DTEBSY== $$BUF
157132 DTEBCT== $$BUF
157130 EN0PKO== $$BUF
157126 EN0ER1== $$BUF
157124 EN0PER== $$BUF
157122 EN0PKI== $$BUF
157120 EN0ER2== $$BUF
157116 EN0MEM== $$BUF
157112 EN0BUF== $$BUF
157110 EN0IND== $$BUF
157106 ENBCCF== $$BUF
157100 COUN10== $$BUF
157076 EN0DLY== $$BUF
157072 TO10Q== $$BUF
157066 ENETQ== $$BUF
157062 FR10Q== $$BUF
157056 FREEQ== $$BUF
157054 QMPRQS== $$BUF
157052 ENIHAD== $$BUF
152312 BOOTBF== $$BUF
152306 BOOTSA== $$BUF
152302 BOOTBG== $$BUF
152300 FSSTATE== $$BUF
152276 FSTPTR== $$BUF
152274 FSTYPR== $$BUF
152262 FSRBUF== $$BUF
152260 FSRPTR== $$BUF
152256 FSFLG== $$BUF
152254 FSCLKA== $$BUF
152246 FSRTIM== $$BUF
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 397
SBST11 PAL[KL,SYS] Page 5 *STORE* PROGRAM STORAGE FILE, 5-AUG-75
152244 $SWMON== $$BUF
152242 MONCTL== $$BUF
152240 TENSWD== $$BUF
152236 TENCLK== $$BUF
152234 PCMDFLG== $$BUF
152232 PCMDNF== $$BUF
152230 $ITERA== $$BUF
152226 $ENDCT== $$BUF
152224 $EOPCT== $$BUF
152222 $ERRPC== $$BUF
152220 $ERTTL== $$BUF
152216 $ERFLG== $$BUF
152214 $PASS== $$BUF
152212 $CMTAG== $$BUF
151212 DVBUF== $$BUF
151206 EXTBF== $$BUF
151200 NAMBF== $$BUF
151176 DIRST4== $$BUF
151174 DIRST3== $$BUF
151172 DIRST2== $$BUF
151170 DIRST1== $$BUF
151166 DIRST0== $$BUF
151164 DTEXT== $$BUF
151156 DTEXTS== $$BUF
151154 DTLNGTH== $$BUF
151152 DTSTRT== $$BUF
151150 DVADR== $$BUF
151146 DVCNT== $$BUF
151144 DVDIRF== $$BUF
151142 CDADR== $$BUF
151140 DIAFLG== $$BUF
151136 RPEOF== $$BUF
151130 WRTBAK== $$BUF
151124 $RPINFO== $$BUF
151116 NAMRAD== $$BUF
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 398
SBST11 PAL[KL,SYS] Page 6 *STORE* PROGRAM STORAGE FILE, 5-AUG-75
151114 REVCNT== $$BUF
151112 INTSW== $$BUF
151110 $CKS11== $$BUF
151106 LTMP== $$BUF
151104 LBC== $$BUF
151102 TRYCTR== $$BUF
151100 DTXCMD== $$BUF
151076 WCSAV== $$BUF
151074 CASAV== $$BUF
151072 DTBLK== $$BUF
151070 LDATAE== $$BUF
150764 LDATA== $$BUF
150762 LDADR== $$BUF
150760 LDCNT== $$BUF
150756 LDOCTF== $$BUF
150754 LDCNTL== $$BUF
150752 LDOVRD== $$BUF
150750 LDZBLK== $$BUF
150746 SRTFLG== $$BUF
150744 DEVLC== $$BUF
150742 HLPPNT== $$BUF
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 399
SBST11 PAL[KL,SYS] Page 7 *STORE* PROGRAM STORAGE FILE, 5-AUG-75
150740 $INPTR== $$BUF
150736 $INPTC== $$BUF
150520 $INBUF== $$BUF
150516 $OUTPC== $$BUF
150514 $OUTPT== $$BUF
150512 $OUTPP== $$BUF
150274 $OUTBF== $$BUF
150272 $TNPTR== $$BUF
150270 $TNPTC== $$BUF
150052 $TNBUF== $$BUF
150044 $TNCHR== $$BUF
150042 TENTTY== $$BUF
150040 $TTYIN== $$BUF
150024 $TTSAV== $$BUF
150022 $PRNTH== $$BUF
150020 $PGWID== $$BUF
150016 $TPLIN== $$BUF
150014 $TPLIT== $$BUF
150012 $XOFLG== $$BUF
150010 CTRLOF== $$BUF
150006 $EOLFLG== $$BUF
150004 $TTLKF== $$BUF
150002 TILNWF== $$BUF
150000 $FORCE== $$BUF
147776 $TTYFL== $$BUF
147774 $0FLG== $$BUF
147772 $NEG== $$BUF
147770 $SVH== $$BUF
147766 $SVM== $$BUF
147764 $TICHR== $$BUF
147762 $TOCHR== $$BUF
147760 DDTFLG== $$BUF
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 400
SBST11 PAL[KL,SYS] Page 8 *STORE* PROGRAM STORAGE FILE, 5-AUG-75
147756 $KONSP== $$BUF
147754 ALLFLG== $$BUF
147752 RPTFLG== $$BUF
147750 VERIFY== $$BUF
147746 .EADR== $$BUF
147744 $ECADR== $$BUF
147742 $EDADR== $$BUF
147740 $ADR== $$BUF
147736 $ADR1== $$BUF
147730 .DFRDA== $$BUF
147724 .DPXAD== $$BUF
147720 L10ADR== $$BUF
147712 $TEMP0== $$BUF
147710 TENRUN== $$BUF
147706 MONMODE== $$BUF
147704 MTTYOF== $$BUF
147702 $TTYTIM== $$BUF
147700 KASIM== $$BUF
147676 $PCSAV== $$BUF
147674 $PSSAV== $$BUF
147672 $SPSAV== $$BUF
147670 $R5SAV== $$BUF
147666 $R4SAV== $$BUF
147664 $R3SAV== $$BUF
147662 $R2SAV== $$BUF
147660 $R1SAV== $$BUF
147656 $R0SAV== $$BUF
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 401
SBST11 PAL[KL,SYS] Page 9 *STORE* PROGRAM STORAGE FILE, 5-AUG-75
147654 $EMADR== $$BUF
147652 $SWTCH== $$BUF
147650 $$SVSP== $$BUF
147646 TEMP== $$BUF
147644 IFILEF== $$BUF
147642 IFINP== $$BUF
147640 JFILEF== $$BUF
147636 JFINP== $$BUF
147634 PRGRUN== $$BUF
147632 MEMPEF== $$BUF
147630 .HCFLG== $$BUF
147626 .HCADR== $$BUF
147624 DDTTM1== $$BUF
147622 DDTTM2== $$BUF
147614 $ECMD== $$BUF
147606 $SAV20== $$BUF
147604 VRBFLG== $$BUF
147576 ZEROS== $$BUF
147570 VMADAT== $$BUF
147566 XXDAT== $$BUF
147560 MMDAT== $$BUF
147552 WREADY== $$BUF
147550 SIGNL== $$BUF
147534 $BUFRC== $$BUF
147532 SIGNL2== $$BUF
147530 SIGNL3== $$BUF
147522 DDRAM== $$BUF
147516 RDRTMP== $$BUF
147502 $DRAM== $$BUF
147500 $DDRMS== $$BUF
147476 $STDAT== $$BUF
147474 KLCLKR== $$BUF
147466 TENDAT== $$BUF
147462 TENAC0== $$BUF
147454 C10CW== $$BUF
147446 CLKCNT== $$BUF
147444 $TADSP== $$BUF
147442 SWTDEP== $$BUF
147442 BUFCLR==$$BUF
.IF2
000002 .IFL $$BUF-PATEND
.PRINT \BUFFER STORAGE OVERLAPS LITERAL STORAGE, FLUSH SOMETHING!
\
INFORM OVERLAP,\PATEND-$$BUF
.IFF
INFORM FREE LITERAL/BUFFER SPACE,\$$BUF-PATEND
.IF P2
.PRINT \FREE LITERAL/BUFFER SPACE=2
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 402
SBST11 PAL[KL,SYS] Page 9.1 *STORE* PROGRAM STORAGE FILE, 5-AUG-75
\
.ENDC
.ENDC
.ENDC
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 403
KLDCP PAL[KL,SYS] Page 5.11 *STORE* PROGRAM STORAGE FILE, 5-AUG-75
100010 .END $ILOAD ;initial startup in SUB11
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 404
KLDCP PAL[KL,SYS] Page 5 ***Symbol Table***
ABORT 100000 BLKI 000000 C10SW1 110214 CON1 144004
AC 000000 BLKO 000002 C10SW2 110222 CON2 144026
ACTBCK 140640 BOOASB 000001H C10SWE 110270 CONBUT 000012
ACTDON 140604 BOOTBF 152312H C10SWT 110204 CONI 000005
ACTERR 140652 BOOTBG 152302H C10TI 110020 CONO 000004
ACTLD2 140422 BOOTSA 152306H C10TIE 110100 CONSL 100106
ACTLDC 140632 BOOTSZ 002260H C10TIX 110056 CONSO 000007
ACTLDF 140646 BOOTWD 000620H C10TIZ 110106 CONSOL 100000H
ADH 000000 BPARER 000020 C10TO 107772 CONSZ 000006
ADL 000000 BPTASB 000000U C10X 110164 COREND 160000
ADRERR 113350 BPTVEC 000014 C10X1 110472 COUN10 157100H
ALLEX1 102276 BRCLK 000005 C10XXX 111336 CPUPR 000140H
ALLEXT 102262 BUFCLR 147442H CAB08 040000 CR 000015
ALLFLG 147754H BURST 104131 CASAV 151074H CTRLOF 150010H
ALTMOD 000033 BYTE2 020000 CBIT 000001 D1011 000040
APR 000000 C10BCR 110654 CCA 000014 D10MON 104111
ASCR50 104165 C10C0 110630 CDADR 151142H D10ZRO 104112
BELL 000007 C10C1 110660 CDD 000020 D11MPE 001000
BIT0 000001 C10C2 110714 CECLK 000004 DADONE 140604
BIT00 000001 C10C3 110640 CHAIN 000001 DAHLP 140426
BIT01 000002 C10C4 111154 CLKASB 000001H DAHLPD 140510
BIT02 000004 C10C5 111342 CLKCNT 147446H DATAI 000001
BIT03 000010 C10C6 111550 CLKDFL 157246H DATAO 000003
BIT04 000020 C10CER 111140 CLKFLG 157160H DATCOM 143744
BIT05 000040 C10CLK 110574 CLKINT 126052 DATEVE 143772
BIT06 000100 C10COP 110742 CLKPE 157264H DATINT 135112
BIT07 000200 C10CPT 110610 CLKPRM 104202 DATODD 143756
BIT08 000400 C10CR1 111544 CLKSTA 125744 DATPAG 105770
BIT09 001000 C10CW 147454H CLRMR 000006 DCOMST 000001
BIT1 000002 C10CX 110634 CLRRUN 000010 DCSRT 000001
BIT10 002000 C10CX1 110664 CMD10T 107466 DDRAM 147522H
BIT11 004000 C10DDT 110344 CMPR36 104052 DDTFLG 147760H
BIT12 010000 C10DN1 107260 CNTRLA 000001 DDTTM1 147624H
BIT13 020000 C10DN2 107266 CNTRLC 000003 DDTTM2 147622H
BIT14 040000 C10DNX 107552 CNTRLD 000004 DECVER 000010H
BIT15 100000 C10DON 107526 CNTRLI 000011 DEFEXT 130642
BIT2 000004 C10KAS 110530 CNTRLK 000013 DEP 010000
BIT3 000010 C10P1 110466 CNTRLL 000014 DEVFIL 133346
BIT4 000020 C10P2 110462 CNTRLO 000017 DEVLC 150744H
BIT5 000040 C10P3 110476 CNTRLR 000022 DEVTYP 157310H
BIT6 000100 C10P4 110504 CNTRLT 000024 DEX 000400
BIT7 000200 C10P5 110510 CNTRLU 000025 DEXDON 000004
BIT8 000400 C10PNT 110146 CNTRLX 000030 DEXWD1 000006
BIT9 001000 C10PRG 110406 CNTRLZ 000032 DEXWD2 000004
BKARW 000137 C10PT 110422 CNUPE 000002 DEXWD3 000002
BKSLH 000134 C10SW 110170 COMMA 000054 DFADB 104125
BLANK 000040 C10SW0 110226 COMNER 113370 DFLEGA 104226
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 405
KLDCP PAL[KL,SYS] Page 5 ***Symbol Table***
DFPC 104123 DLRCSR 000000 DRAMAD 104130 DTINIT 104156
DFRD 104116 DLRD 000200 DRESET 000100 DTLNGT 151154H
DFRDMV 104117 DLRDM 000377 DRJ1.4 000134 DTRDFL 104211
DFRDT 104140 DLRDPE 010000 DRJ710 000135 DTREAD 104161
DFSCLK 104122 DLRDS 000000 DRLTCH 000015 DTREV 135064
DFUNC 000200 DLRE 000001 DS00 100000 DTREVC 135072
DFVMA 104124 DLRI 040000 DS01 040000 DTRPLD 131122
DFVMAH 104150 DLRIE 000100 DS02 020000 DTSRA 134706
DFWIR 104121 DLRIV 000060 DS03 010000 DTSRE 134724
DFWRT 104120 DLRTS 000004 DS04 004000 DTSRF 134746
DFWRTT 104141 DLSRD 002000 DS05 002000 DTSTRT 151152H
DFXCT 104114 DLSTD 000010 DS06 001000 DTUNIT 157276H
DFXCTT 104115 DLTDM 000377 DSEND 000004 DTWRT 104205
DHASB 000000U DLTDS 000000 DSKDIR 003030 DTWTFL 104212
DIAEOF 112362 DLTIE 000100 DSVER 135664 DTXCMD 151100H
DIAFLG 151140H DLTIV 000064 DTAFIL 104207 DUPE 000020
DIAFND 112226 DLTR 000200 DTAFL1 133430 DURE 000004
DIAG1 000030 DLXBUF 000006 DTBASE 104213 DVADR 151150H
DIAG2 000032 DLXCSR 000004 DTBLK 151072H DVASB 000000U
DIAG3 000036 DLYCNT 000000 DTCOPY 003022 DVBUF 151212H
DIANF 112234 DON10C 040000 DTE 000200 DVCNT 151146H
DIARD 112242 DON10S 100000 DTE10D 136576 DVDATA 104160
DIARNL 112262 DON11C 000100 DTE11D 136650 DVDIRF 151144H
DIASEL 112156 DON11S 000200 DTEADR 174400 DVEOF 134064
DIKL10 000010 DPAD 000127 DTEASB 000001 DVFRAM 104163
DING 002000 DPADB 000153 DTEBAS 104113 DVLOAD 130312
DIRST0 151166H DPADX 000126 DTEBBD 000000U DVSASB 000001
DIRST1 151170H DPAR 000120 DTEBCT 157132H DVWRD 104164
DIRST2 151172H DPARX 000125 DTEBSY 157134H DXWRD1 002000
DIRST3 151174H DPBR 000121 DTEDEF 000001 EBSEL 000100
DIRST4 151176H DPBRX 000124 DTEINI 140730 EBUSPC 000020
DISACF 000066 DPERG 000167 DTEINT 136510 EBUSPS 000004
DISIOJ 000065 DPFE 000132 DTEIV0 000774 ECLOK 104135
DLASB 000001 DPFE1 000133 DTEIV1 000770 EDONES 040000
DLBA 177560 DPFM 000123 DTEIV2 000764 EMTIMO 100104
DLBRK 000001 DPFMA 000114 DTEIV3 000760 EMTVEC 000030
DLCD 010000 DPMQ 000122 DTEMAX 000004 EN0BSZ 000454
DLCTS 020000 DPOS 104105 DTER 134776 EN0BUF 157112H
DLDIE 000040 DPOST 104106 DTERA 135012 EN0DLY 157076H
DLDSC 100000 DPOSVR 104107 DTERB 135032 EN0ER1 157126H
DLDTR 000002 DPOSVT 104110 DTERC 135042 EN0ER2 157120H
DLERR 100000 DPPC 000153 DTESIZ 000040 EN0IND 157110H
DLFE 020000 DPSC 000130 DTESZS 000005 EN0MEM 157116H
DLMAIN 000004 DPSC1 000131 DTEXT 151164H EN0PER 157124H
DLORE 040000 DPVMA 000157 DTEXTS 151156H EN0PKI 157122H
DLRA 004000 DPVMHD 000157 DTFIL 133400 EN0PKO 157130H
DLRBUF 000002 DRAMAB 000133 DTHDER 135052 ENBCCF 157106H
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 406
KLDCP PAL[KL,SYS] Page 5 ***Symbol Table***
ENETQ 157066H FSCLKA 152254H INHCSH 000004 LDBIN1 132242
ENIADR 160036 FSCLKR 114264 INHPAG 000020 LDBIN2 132300
ENICOP 136344 FSFLG 152256H INT10 100000 LDBIN3 132326
ENICSR 160034 FSHNG1 114120 INT10S 000400 LDBINE 132316
ENIHAD 157052H FSIN4D 113744 INT11C 002000 LDBLD2 135402
ENIINT 136074 FSIN4E 114000 INT11S 004000 LDBOOT 135264
ENIOJA 000067 FSIN4R 113726 INTROF 000010 LDBRL 000043
ENISET 136320 FSIN4W 114032 INTRON 000040 LDBRR 000042
ENIWA 160032 FSIN5A 114152 INTSON 000001 LDBXFR 135456
ENIWC 160030 FSINT1 113476 INTSW 151112H LDCHAN 000070
ENOCSR 160024 FSINT2 113534 IOTVEC 000020 LDCHK1 000046
ENODLY 160026 FSINT3 113626 IRLOAD 000014 LDCHK2 000047
ENOINT 135674 FSINT4 113636 JFILEF 147640H LDCKSM 131606
ENOWA 160022 FSINT5 114130 JFILIN 101730 LDCLR 131466
ENOWC 160020 FSINTA 113572 JFINP 147636H LDCNT 150760H
ENPCHK 136406 FSLOSM 114460 JRST 000254 LDCNTL 150754H
EOP 104061 FSMSG 114434 KASET 110540 LDCNV 131472
EOPSET 104063 FSRBUF 152262H KASIM 147700H LDCRAM 132640
EPTREL 000001H FSRINT 113456 KLCLKR 147474H LDCZRO 132606
ERR10C 010000 FSRLEN 000012H KLDCP 000001 LDDIS 000045
ERR10S 020000 FSRPTR 152260H KLRUN 002000 LDDONE 131770
ERR11C 000001 FSRTIM 152246H KONSL 100134 LDDRAM 132450
ERR11S 000002 FSSTAT 152300H KTIMBS 157162H LDELVN 131774
ERREOP 104062 FSTINT 114170 KWASB 000001 LDEOL 131604
ERRHLT 104001 FSTPTR 152276H KWLIV 000100 LDERR 131600
ERRSTP 004000 FSTYP 114210 KWLKE 000100 LDLTR 131670
ERRVEC 000004 FSTYP1 114226 KWLKS 177546 LDMBXA 000071
ERSTOP 000400 FSTYP2 114254 L10ADR 147720H LDOCT 131572
ESYNC 104136 FSTYPR 152274H LBC 151104H LDOCTF 150756H
ETB 000027 FSXIT 113526 LCRAM1 000057 LDOVRD 150752H
EXAM 104103 FSXITA 113724 LCRAM2 000056 LDPRO1 131374
EXAMT 104104 FSXITC 113556 LCRAM3 000055 LDPRO2 131444
EXCT 104101 FUQ 000000H LCRAM4 000054 LDPRO3 131450
EXTBF 151206H HALTLP 001000 LCRAM5 000053 LDPROC 131304
EXVIRT 020000 HANGU1 114050 LCRDAL 000052 LDRAM1 000060
FATAL 104000 HANGUP 114042 LCRDAR 000051 LDRAM2 000061
FESCP 103330 HLPPNT 150742H LD10ER 133330 LDRAM3 000062
FF 000014 HRLZI 000515 LD10V 133310 LDRDIN 133146
FFDEP 141466 HRRI 000541 LD10VE 133250 LDRJEV 000063
FLOPPY 157306H I 000000 LD10VR 133244 LDRJOD 000064
FLST 143322 IFILEF 147644H LD11DN 132226 LDSEL 000044
FR10Q 157062H IFILEP 140670 LDADR 150762H LDSTRT 113226
FREEAD 003000H IFILIN 101666 LDAR 000077 LDTEN 133050
FREEND 023000H IFILX 101714 LDATA 150764H LDTENZ 133074
FREEQ 157056H IFILX1 101724 LDATAE 151070H LDTYPE 131652
FREESZ 020000H IFINP 147642H LDBDAT 135406 LDZBLK 150750H
FSCASB 000000U IJFILX 101772 LDBIN 132240 LF 000012
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 407
KLDCP PAL[KL,SYS] Page 5 ***Symbol Table***
LJMP 132430 MULTPY 104072 PNT23 104041 QECHRQ 000002
LLD1 131136 NAMBF 151200H PNT36 104042 QECHRY 000001
LLD2 131146 NAMEXT 104206 PNT36B 104134 QENADR 000004
LLD3 131156 NAMRAD 151116H PNTADR 104137 QENBCC 000006
LLD4 131166 NBIT 000010 PNTAL 104024 QENMSG 000010H
LLDONE 131242 NEG36 122006 PNTBAK 104177 QENPKT 000003
LLIST 141750 NOPAR 115152 PNTCHR 104027 QENWC 000006
LLISTL 000012H NOPNT 010000 PNTCI 104214 QGET 137140
LODAR 104102 NULL 000000 PNTCPU 104132 QGIVE 137120
LOOPER 001000 NULSTP 000040 PNTCRM 104142 QHDRSZ 000006
LPASB 000000U NUPE 000002 PNTDEC 104037 QINI 137522
LPTASB 000000U OPRSEL 000002 PNTDRM 104143 QMPCMD 137166
LPTFLG 157304H P10CMD 112144 PNTLPT 004000 QMPCXT 137314
LPTYPE 157302H PAG 000010 PNTNBR 104030 QMPINI 137674
LTMP 151106H PAGDFL 157254H PNTOCS 104036 QMPRQS 157054H
MCNVER 000000H PALERS 000200 PNTOCT 104035 QMPRTY 137322
MEMPE 124076 PATCH 147416 PNTODC 104046 QMPRY1 137242
MEMPEF 147632H PATEND 147440H PNTODT 104047 QNOPMS 000000
MICFIL 104204 PBELL 104045 PNTRST 104215 QREQ 000004
MICNUL 104203 PC 000007R PR0 000000 QSIZ 000002
MMADDM 007740 PCF 103106 PR1 000040 R0 000000R
MMADDS 000005 PCFTBL 103214 PR2 000100 R1 000001R
MMDAT 147560H PCKASB 000001H PR3 000140 R2 000002R
MMERRF 100000 PCMDE 101526 PR4 000200 R3 000003R
MMLPBA 172100 PCMDE1 101546 PR5 000240 R4 000004R
MMLPEA 172136 PCMDE2 101572 PR6 000300 R5 000005R
MMLPIV 000114 PCMDE3 101552 PR7 000340 R50UPK 104155
MMPIE 000001 PCMDFL 152234H PRGCMD 104133 R6 000006R
MMWWP 000004 PCMDNF 152232H PRGHLT 104002 RAMIS0 010000
MODDVC 000010 PCOMMA 104034 PRGNPT 104216 RCRAM 104074
MONASB 000000U PCRLF 104031 PRGRUN 147634H RCRAM1 000147
MONCTL 152242H PCVMAP 102714 PRGSRT 100000 RCRAM2 000146
MONMOD 147706H PDVER 003010 PRINTT 104151 RCRAM3 000145
MRESET 104076 PEBITS 157262H PROL36 104146 RCRAM4 000144
MSWCHR 000030 PERCLR 001000 PRTOFF 004000 RCSPEC 000141
MTTYC 107350 PFORCE 104043 PS 177776 RDCLK 111600
MTTYCF 107356 PGOADR 157204H PSLASH 104033 RDRAM 104126
MTTYER 107276 PGOCTL 157202H PSPACE 104032 RDRTMP 147516H
MTTYI0 107212 PHYS 100000 PTAB 104227 READ0 000100
MTTYI1 107222 PI 000004 PTABLE 003020 READ1 000101
MTTYIN 107200 PID 003004 PTTY 104152 READ2 000102
MTTYO 107324 PLDBUF 104154 PULSE 000060 READ3 000103
MTTYOC 107302 PLPT 104153 PWLEN 000004H REGRST 104051
MTTYOF 147704H PMVER 003012 PWORD 114472 REGSAV 104050
MTTYP 107342 PNORML 104044 PWRVEC 000024 RELIAB 000100
MTTYS 107406 PNT18 104040 QCHN 000000 REMOTE 003032
MTTYX 107346 PNT22 104041 QDTMSG 000005 REQLST 136726
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 408
KLDCP PAL[KL,SYS] Page 5 ***Symbol Table***
REQMAX 000016H SHFT36 121764 TCDO 000001 TKVEC 000060
RESVEC 000010 SHIFTL 104054 TCDT 177350 TLDR 100074
RESVED 000000 SHIFTR 104053 TCERR 100000 TMON 100100
REVCNT 151114H SIGNL 147550H TCIE 000100 TMSFLG 157140H
RFMAD0 100000 SIGNL2 147532H TCILO 010000 TO10 000200
RFMAD1 040000 SIGNL3 147530H TCMTE 020000 TO10AD 000020
RFMAD2 020000 SIPNT 104466 TCPAR 040000 TO10BC 000014
RFMAD3 010000 SLASH 000057 TCRDAT 000004 TO10BM 000001
RM 000010 SM 104100 TCRDY 000200 TO10DB 000400
RPADDR 104174 SND10 137350 TCREV 004000 TO10DN 100000
RPASB 000000U SNDEN 136006 TCRNUM 000002 TO10DT 000024
RPBASE 104175 SNDENR 136014 TCSELE 004000 TO10ER 020000
RPEOF 151136H SP 000006R TCSOFT 063000 TO10Q 157072H
RPERRO 104237 SPACE 000040 TCST 177340 TO11 000100
RPFIL 100574H SRT10 113324 TCUINT 111760 TO11AD 000022
RPFILE 104210 SRT11 113250 TCWC 177344 TO11BC 000016
RPFIND 104167 SRT11X 113242 TCWDAT 000014 TO11BM 020000
RPINIT 104157 SRTFLG 150746H TDDT 100070 TO11DB 004000
RPLKUP 104170 SSCLK 000002 TDELAY 104056 TO11DN 000200
RPLOAD 104166 STACK 157776H TDIAG 100064 TO11DT 000026
RPRDFL 104171 START 100000 TELASB 000001H TO11ER 000002
RPREAD 104162 STATUS 000034 TEMP 147646H TOTALS 020000
RPTFLG 147752H STKLMT 177774 TENAC0 147462H TOUTBF 003000
RPUNIT 157274H STPCLK 000000 TENAD1 000010 TPVEC 000064
RPWRFL 104172 STRCLK 000001 TENAD2 000012 TRAPVE 000034
RPWRIT 104173 SWITCH 104057 TENCER 107566 TRMTAB 122376
RSTART 040000 SWR 177570 TENCHR 104176 TRTVEC 000014
RUBOUT 000177 SWS10 157240H TENCLK 152236H TRYCTR 151102H
RUNLP 104003 SWSLFT 100000 TENCMD 107416 TTALTM 104013
RXASB 000000U SWTDEP 147442H TENDAT 147466H TTBACK 104144
RXBASE 104234 SWTSAM 104060 TENDEA 107710 TTBTRM 104023
RXCOPY 003020 SYN 000001 TENMO 100056 TTCOCT 104010
RXFILE 104230 T11DBF 157136H TENRUN 147710H TTERM 104201
RXINIT 104231 T11MSE 136744 TENSP 104077 TTI36 104014
RXRDFL 104232 TA11 000260 TENSW 104145 TTIBRK 104015
RXREAD 104235 TAASB 000000U TENSWD 152240H TTICCL 104225
RXUNIT 157300H TAB 000011 TENTTY 150042H TTICHR 104005
RXWRT 104236 TAPT 003026 TEXTER 000000 TTICRA 104021
RXWTFL 104233 TBIT 000020 TGOADR 157210H TTICSR 177560
SAILVR 000007H TBITVE 000014 TILINA 120630 TTIDBR 177562
SCD 000040 TC11 000214 TILINC 120610 TTIDEC 104011
SEADR 157200H TCASB 000001 TILNWF 150002H TTILIN 104004
SECLK 000003 TCBA 177346 TIM11 157172H TTILNW 104224
SETFLG 104055 TCBLKM 002000 TIMADR 157144H TTIOCT 104007
SETMPH 104147 TCCM 177342 TIMBAS 157164H TTIS36 104020
SETMR 000007 TCCM1 177343 TIMFLG 157142H TTISDL 104016
SETRUN 000011 TCDATM 001000 TIMTMP 157152H TTISDO 104017
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 409
KLDCP PAL[KL,SYS] Page 5 ***Symbol Table***
TTITRM 104022 $$$ST 106204 $$SWR 157230H $CLKST 100052
TTIYES 104012 $$ACT 131720 $$TDX 107726 $CLKTV 100054
TTLOOK 104006 $$BARG 000001H $$TEN 131743 $CMCLR 115154
TTOCSR 177564 $$BUF 147442H $$ZZQ 145310 $CMDE 113364
TTOCTE 104200 $$C1 110274 $0FLG 147774H $CMDER 100574
TTODBR 177566 $$C2 140626 $10ADR 125350 $CMP36 125314
TTPINI 104217 $$CF 104425 $11ADR 137030 $CMTAG 152212H
TXTINH 000040 $$CI 104420 $11ECH 136774 $CNTLC 100004
UPECD 037000 $$CLC 141220 $11ETH 137012 $COMNT 113344
USEVIR 060000 $$CLIT 147416 $99 137176 $CONSL 100014
UTLASB 000000U $$CLRF 125062 $ADR 147740H $CR 144747
VBIT 000002 $$CMDE 112746 $ADR1 147736H $CRMD0 130060
VEC02 000004 $$CNTL 100602 $ALADX 102500 $CRTBL 144766
VEC03 000010 $$CONS 100332 $ALARX 102430 $D10AD 125070
VEC04 000020 $$COR 131713 $ALBRX 102542 $D10MO 124202
VERIFY 147750H $$DFX1 141320 $ALLAD 102464 $D10ZR 124142
VFUDAT 151212 $$DFXD 141412 $ALLAR 102414 $D10ZX 124176
VMADAT 147570H $$DTX 134432 $ALLBR 102526 $DC 127734
VRBFLG 147604H $$DTXC 134436 $ALLEB 102570 $DCNCL 127730
VT 000013 $$DTXE 134374 $ALLEC 126272 $DCTP1 126524
WCRAM 104073 $$DVX 134140 $ALLFE 103304 $DCTPC 126520
WCSAV 151076H $$ECA 127024 $ALLFM 102324 $DD 127044
WDRAM 104127 $$FF 145026 $ALLMQ 102306 $DDA 127432
WEP 000010 $$GO 113216 $ALLPC 102642 $DDB 127446
WFILE 003024 $$ILOA 114520 $ALLPI 103420 $DDNPR 127040
WIRAR 143730 $$LD11 131677 $ALLSC 103320 $DDRMS 147500H
WIRAR1 143734 $$LITT 145030 $ALPCF 103024 $DDSIZ 127162
WREADY 147552H $$NAM 131104 $ALPIG 103452 $DDT 000441
WRLIST 142360 $$P23 117070 $ALPIH 103504 $DDTER 104214
WRTBAK 151130H $$PARA 112742 $ALPIO 103536 $DDTX 104112
WWADR 104075 $$PEX 117216 $ALPIX 103472 $DECN 113452
XEPT 000000 $$PEX1 117614 $ALPIY 103462 $DELAY 122562
XMEMSZ 001000H $$PEX2 117726 $ALSTA 107732 $DFADB 144574
XOFF 000023 $$PEX3 120056 $ALVMA 102760 $DFERR 102102
XON 000021 $$PEX4 122440 $ALVMH 102776 $DFLEG 104276
XORCR 174200 $$PEX5 122174 $ASCR5 135122 $DFPC 144550
XORSR 174202 $$PEX6 121156 $BELL 144750 $DFPC1 144554
XR 000000 $$PEX7 121162 $BELLT 144774 $DFRD 141070
XUPT 040000 $$PMSG 122532 $BKFLG 157272H $DFRDM 141700
XXDAT 147566H $$PMSR 122524 $BUFRC 147534H $DFRDT 141056
ZBIT 000004 $$PNTX 115626 $BURST 144052 $DFSCL 141240
ZEROS 147576H $$PSX2 117732 $CKS11 151110H $DFTIM 141154
ZSTOP 040000 $$RAM 131725 $CKSUM 115172 $DFTM1 141214
$$$CC 100624 $$ST 106006 $CLKHM 100046 $DFTMX 141200
$$$DVX 134364 $$STJR 157222H $CLKMD 100044 $DFVMA 144566
$$$FF 147416 $$STKM 157360H $CLKPR 144042 $DFVMH 144542
$$$NAM 131074 $$SVSP 147650H $CLKSE 100050 $DFWIR 141470
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 410
KLDCP PAL[KL,SYS] Page 5 ***Symbol Table***
$DFWRT 141510 $DTQMP 000460 $ERREO 115216 $INBUF 150520H
$DFXCT 141254 $DTRDF 134366 $ERRHL 115230 $INPTC 150736H
$DFXFS 141360 $DTREA 134476 $ERRPC 152222H $INPTR 150740H
$DFXX 141110 $DTRFL 134400 $ERTTL 152220H $ITERA 152230H
$DI 133724 $DTSEQ 000452 $ESYNC 123606 $JC 113232
$DIAFX 112230 $DTSWR 000457 $EXAM 124320 $JFILE 113064
$DIASX 101612 $DTT11 000447 $EXAMT 124312 $KA 106440
$DISPH 101142 $DTTIM 000446 $EXAMX 124332 $KDCEN 101140
$DPER1 102770 $DTWRT 134504 $EXDEP 124342 $KDCRE 100674
$DPERR 102374 $DTWTF 134442 $EXIT 124062 $KLCK1 141376
$DPOS 124236 $DTX 113202 $EXITE 124034 $KLCK2 141450
$DPOST 124232 $DTXF1 134522 $EXITS 124054 $KLCK3 141412
$DPOSV 125146 $DTXF2 134574 $FAD 130206 $KLCK4 141446
$DPOSX 124244 $DTXF3 134606 $FAR 130176 $KONS1 100364
$DPSVT 125142 $DTXF4 134754 $FATAL 123012 $KONS2 100422
$DPSX1 124302 $DTXFR 134510 $FATLE 122700 $KONSL 100230
$DPVRE 125230 $DVDAT 134030 $FBR 130222 $KONSP 147756H
$DPVRP 125216 $DVFRA 133770 $FCOND 130302 $LDB 113016
$DPVRV 125240 $DVWRD 134106 $FFE 130250 $LDBNE 132322
$DPVRX 125210 $DWRTT 141730 $FFM 130230 $LDD 113026
$DPVRY 125206 $DXCTT 141224 $FILPL 113452 $LDE 112776
$DRAM 147502H $EBPAR 125114 $FJ 130156 $LDR 113006
$DRAMA 143620 $EC 126242 $FMEM 130274 $LDT 112766
$DRAMO 127206 $ECADR 147744H $FMQ 130226 $LF 144746
$DS 135472 $ECGET 126450 $FNUM 130256 $LFTBL 144760
$DT 113150 $ECHRY 136766 $FORCE 150000H $LINER 131760
$DTAFI 133426 $ECLOK 125542 $FSC 130246 $LLD2 132742
$DTBAS 134470 $ECMD 147614H $FSCAD 130234 $LODAR 144242
$DTBL 145002 $ECTIM 141210 $FSH 130252 $LRDIN 133176
$DTBL0 144746 $ED 127472 $FSTKB 100032 $MBPHS 144376
$DTBL1 144752 $EDADR 147742H $FSTKS 100030 $MC 107364
$DTC 113206 $EDNOA 127462 $FSTPB 100036 $MICFI 143330
$DTCHR 000454 $EDODD 127466 $FSTPS 100034 $MICNU 143242
$DTCLK 000445 $EMADR 147654H $FSTRV 100040 $MPHDF 157214H
$DTCMD 000451 $EMTAD 123106 $FSTTV 100042 $MPHMK 157216H
$DTDI1 133652 $EMTAE 123606 $FT 130172 $MRESE 141766
$DTDI2 133634 $EMTRP 123022 $FVMA 130270 $MULTP 122056
$DTDIR 133744 $ENBCC 137072 $GO 113212 $NAMEX 130676
$DTEBA 141046 $END 126606 $HELP 113132 $NB 000010
$DTF11 000450 $ENDCT 152226H $HELP1 113144 $NEG 147772H
$DTFLG 000444 $EOLFL 150006H $HU 114476 $NEXT 126572
$DTINF 134464 $EOP 115216 $IFILE 113104 $NONXF 134144
$DTINI 134132 $EOPCT 152224H $IIX 113112 $NOTAS 122776
$DTMTD 000455 $EOPSE 115216 $ILDCL 152246 $OCTN 113452
$DTMTI 000456 $EOR 122726 $ILDSU 157314H $ONETM 157316H
$DTNOP 136766 $EOR2 123002 $ILLUP 123622 $OUTBF 150274H
$DTOPR 000453 $ERFLG 152216H $ILOAD 100010 $OUTPC 150516H
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 411
KLDCP PAL[KL,SYS] Page 5 ***Symbol Table***
$OUTPP 150512H $PNTRS 116020 $RNN 104002 $SWTSA 120036
$OUTPT 150514H $PNTSP 117774 $RNX 104106 $TADSP 147444H
$P18X 117160 $PODCD 117036 $RP 100574H $TBLL 145014
$P23X 117164 $PODMV 117324 $RPINF 151124H $TCX 112076
$P23Y 117132 $PODT 116756 $RPT 100456 $TEMP0 147712H
$P36B 117142 $PRGCM 101452 $RQCB 140156 $TENCH 112106
$P36BX 117156 $PRGHL 115220 $RUNLP 107030 $TENRN 106366
$P36MV 117304 $PRGNP 101444 $RXX 113176 $TENSP 125614
$PADR 117044 $PRGXX 101456 $SAV20 147606H $TENSW 111762
$PAGDF 141032 $PRINT 116036 $SAVAL 140310 $TF 113434
$PARA 113356 $PRNTH 150022H $SAVRG 140352 $TI36C 122042
$PARAM 113452 $PROG 113036 $SAVVR 140376 $TIALT 120504
$PASS 152214H $PROG1 113046 $SBRIN 114566 $TIBEL 120460
$PBELL 116746 $PROG2 113042 $SETFL 124044 $TIBKS 120516
$PCMDX 101606 $PROL3 117344 $SETMP 144336 $TICC 120522
$PCOMM 115646 $PRT36 117222 $SHFTL 122510 $TICHR 147764H
$PCRAM 126500 $PSLAS 115640 $SHFTR 122472 $TICL 120532
$PCRLF 116740 $PSPAC 115632 $SHFTX 122504 $TICO 120554
$PCSAV 147676H $PSSAV 147674H $SI 104220 $TICR 120452
$PDRAM 127576 $PTAB 115654 $SM 125376 $TICRA 122456
$PEAR 105006 $PTCO 116732 $SMERR 125454 $TICU 120440
$PECR 105033 $PTTY 116172 $SMRLS 142664 $TICX 120566
$PEDR 105051 $PTTY1 116514 $SMTAB 125460 $TIEXT 120462
$PEFM 105017 $PTTY2 116530 $SP 103750 $TILF 120546
$PEFS 105067 $PTTYC 116544 $SPCMR 142616 $TILN1 120170
$PFORC 120044 $PWRCN 157312H $SPSAV 147672H $TILN2 120220
$PGWID 150020H $PWRDN 123614 $SQASH 143154 $TILN3 120104
$PH1 115260 $PWRUP 123626 $ST 105776 $TILNX 120152
$PH2 115254 $QCLR 137620 $STD 000440 $TILRN 120062
$PLDBU 115662 $QUEUE 137634 $STDAT 147476H $TIMOT 122710
$PMSG 104025 $R0SAV 147656H $STERR 106242 $TIRDY 120666
$PMSGR 104026 $R1SAV 147660H $STJRS 141040 $TIRUB 120372
$PNORM 120052 $R2SAV 147662H $STL 000442 $TKB 100022
$PNT18 117112 $R3SAV 147664H $STM 000443 $TKS 100020
$PNT23 117126 $R4SAV 147666H $STMT1 144372 $TMINU 121166
$PNT36 117152 $R50UP 134166 $STMTB 144366 $TNBUF 150052H
$PNTAL 115520 $R5SAV 147670H $STODD 157220H $TNCHR 150044H
$PNTBA 115766 $RC 126656 $STRCH 142532 $TNPTC 150270H
$PNTCH 115622 $RCP 127006 $STTB1 106246 $TNPTR 150272H
$PNTCI 122542 $RCRAM 142674 $STUF 122752 $TOCHR 147762H
$PNTCP 103600 $RDLST 143150 $SVH 147770H $TOCTE 122420
$PNTDE 117474 $RDRAM 143450 $SVM 147766H $TOOUT 121036
$PNTNB 115612 $REGRS 122642 $SW 110300 $TORDY 120774
$PNTO 117374 $REGSA 122626 $SWITC 120024 $TP 113404
$PNTOC 117364 $RESVD 122720 $SWMON 152244H $TPB 100026
$PNTOD 116770 $RLCB 140032 $SWS10 157232H $TPLIN 150016H
$PNTOS 117372 $RN 104000 $SWTCH 147652H $TPLIT 150014H
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 412
KLDCP PAL[KL,SYS] Page 5 ***Symbol Table***
$TPS 100024 .AC 105544 .DPXAD 147724H .VM 102732
$TPW 113416 .AD 102442 .EADR 147746H .VMH 102774
$TPWF 113430 .ADB 103006 .EB 112456 .XCT 104432
$TTALT 117700 .ALL 103550 .EE 112450 .XCT1 104544
$TTBAC 120006 .AR 102400 .EEB 112460 .XCT2 104540
$TTBTR 122330 .BC10 157334H .ERG 102554 .XCTER 104566
$TTCOC 122406 .BC11 157336H .EXCOM 106666 .ZE 112632
$TTERM 122336 .BR 102512 .EXM 106622
$TTI36 121342 .BU 104602 .EXMN1 107016
$TTIBR 122164 .CCMN 104710 .EXMNX 107004
$TTICC 101636 .CCMN1 104704 .EXMSP 106770
$TTICH 117620 .CE 105400 .FE 103302
$TTIDE 121230 .CEP 105532 .FM 102320
$TTILI 120146 .CF 104412 .FS 102070
$TTILN 120140 .CI 104374 .HC 115464
$TTIOC 121072 .CIF 104400 .HCADR 147626H
$TTITR 122324 .CNERR 106272 .HCFLG 147630H
$TTIX1 117642 .CNSER 104576 .MM 105240
$TTIX2 117650 .CR 104742 .MMC 105242
$TTIYE 117744 .CS 104632 .MMX 105276
$TTLKF 150004H .CSR 104646 .MQ 102304
$TTLOO 117652 .CSRER 104736 .MRESE 102602
$TTPIN 116004 .DA 102610 .MT 105312
$TTS36 122444 .DAT1 157326H .MU 105232
$TTSAV 150024H .DAT2 157324H .MZ 106450
$TTSDL 122200 .DAT3 157322H .PC 102626
$TTSDO 122432 .DAX 102622 .PCF 103022
$TTSDX 122320 .DB 112660 .PD 104774
$TTYFL 147776H .DE 112652 .PE 105102
$TTYIN 150040H .DEB 112662 .PI 103414
$TTYTI 147702H .DELAY 157320H .PL 104320
$TW 113412 .DFDP 102236 .PLX 104360
$VB 106404 .DFDPC 102254 .RI 113374
$VB1 106426 .DFRD 102112 .RPT 101410
$VBX 106332 .DFRDA 147730H .RPTP 101422
$VERIF 112752 .DFWRT 102032 .RPTX 101414
$VMPC 144606 .DFX 102064 .SC 103316
$VMPC1 144600 .DFXCT 102014 .SE 112402
$WCRAM 142364 .DIAG1 157350H .SM 104364
$WDRAM 143400 .DIAG2 157352H .STDTE 157354H
$WWADR 142232 .DIAG3 157356H .T10AD 157340H
$XCT 125472 .DP 106276 .T10DT 157344H
$XOFLG 150012H .DPCM1 106336 .T11AD 157342H
%%DDT 000001H .DPCOM 106316 .T11DT 157346H
%%EOP 000000U .DPNX 106346 .TD 122576
%%QMP 000001H .DPNX1 106314 .TENA1 157330H
%DDTS 077766H .DPS 106362 .TENA2 157332H
KLDCP WAITS KL10/PDP-11 CONSOLE PROGRAM, VER 0.10 PALX 251 04/15/88 20:51:10 Page 413
KLDCP PAL[KL,SYS] Page 5 ***Symbol Table***
1.5 Words Average Instruction Length
16 Seconds Runtime